当前位置: 首页 > news >正文

wap版网站建设方案wordpress 电台

wap版网站建设方案,wordpress 电台,wordpress 添加广告,新公司取名字大全参考一、AST #xff08;抽象语法树#xff0c;Abstract Syntax Tree#xff09; 手把手带你走进Babel的编译世界 - 掘金 (juejin.cn) 1、概念 我们所写的代码转换为机器能识别的一种树形结构#xff0c;本身是由一堆节点#xff08;Node#xff09;组成#xff0c;每个节…一、AST 抽象语法树Abstract Syntax Tree 手把手带你走进Babel的编译世界 - 掘金 (juejin.cn) 1、概念 我们所写的代码转换为机器能识别的一种树形结构本身是由一堆节点Node组成每个节点都表示源代码中的一种结构。 2、节点类型 不同结构用类型Type来区分常见的节点类型有Identifier(标识符)Expression(表达式)VariableDeclaration(变量定义)FunctionDeclaration(函数定义) 3、公共属性 4、查询AST工具 1AST explorer 2AST可视化 5、应用 Babel 插件(ES6 转化 ES5)构建时压缩代码css 预处理器编译webpack 插件二、Babel 1、作用 1将es6转换成es5 利用插件babel-traverse插件可以遍历 ast 节点并进行增删改操作进而实现代码转换功能 2将jsx转换成js 2、工作流程 babel工作原理浅析 - 掘金 (juejin.cn) Babel 的工作流程 - 掘金 (juejin.cn) 1parse解析我的代码解析成AST。用到的babel包babel/parser 包含两步 词法分析也就是将原始代码拆分成一个个的 token用于描述最小独立语法单元的对象语法分析递归遍历 tokens 数组构建 ast。自动分号插入对于位置错误的tokens报告错误语义分析检查这个AST是否遵循ECMAScripts 所有静态的规则 2transform转换AST转换成新的AST算法是深度优先遍历。用到的babel包babel/traverse 3generate生成遍历上一步的AST生成目标代码。在必要的地方插入括号或缩进、注释等。用到的babel包babel/generator 图示过程 3、babel核心包 babel/cli提供在命令行中调用 babel/core 的能力 babel/runtime babel/plugin-transform-runtime包含各种帮助函数是代码运行的时候需要用到的 安装 npm i babel/parser babel/traverse babel/types babel/generator babel/template -D 4、Babel 插件 1作用 插件相当于是指令,来告知 Babel 需要做什么事情。如果没有插件Babel 将原封不动的输出代码。 2分类语法插件和转换插件 语法插件作用于 babel/parser负责将代码解析为抽象语法树AST官方的语法插件以 babel-plugin-syntax 开头)转换插件作用于 babel/core负责转换 AST 的形态5、Babel Types模块 1作用 用于 AST 节点的 Lodash 式工具库它包含了构造、验证以及变换 AST 节点的方法 2节点类型判断 查询APIbabel/types · Babel 中文文档 (docschina.org) import * as types from babel/types;// 是否为标识符类型节点 if (types.isIdentifier(node)) {// ... }// 是否为数字字面量节点 if (types.isNumberLiteral(node)) {// ... }// 是否为表达式语句节点 if (types.isExpressionStatement(node)) {// ... } 3创建数据类型节点 Babel Types 生成的 AST 节点需使用babel/generator转换后得到相应代码 import * as types from babel/types; import generator from babel/generator;const log (node: types.Node) {console.log(generator(node).code); };log(types.stringLiteral(Hello World)); // output: Hello World 4创建jsx ast节点 三、代码格式化 前端代码格式化与校验 - 掘金 (juejin.cn) 1、Eslint 1作用 JavaScript是一门动态的弱类型语言缺少编译过程有些本可以在编译过程中就发现的错误只能等到运行时才发现。ESLint 相当于为语言增加了编译过程在代码运行前进行静态分析能够及时找到出错的地方 2运行原理 使用 espree 解析器将 JavaScript 代码解析成一个 AST抽象语法树然后通过深度遍历 AST 的所有节点会触发监听了对应节点的自定义规则的回调函数 3配置 1 配置文件优先级 .eslintrc.js.eslintrc.yaml.eslintrc.yml.eslintrc.json.eslintrcpackage.json 中的 eslintConfig 字段 2 基本配置 // .eslintrc.js module.exports {// 环境变量指定脚本的运行环境env: {},// 全局变量key-value形式value为ritable表示允许重写变量为readonly表示不允许重写变量globals: {},// 解析器默认使用 Espree 作为其解析器也可以用其他的parser: espree,// 解析器配置parserOptions: {},// 插件ESLint 中的规则只会对 JS 进行校验如果要对Vue、React等进行校验需要用到相关插件plugins: [],// 可以使用 plugins 关键字来存放插件的列表插件名称可以省略 eslint-plugin- 前缀// 写成{// plugins: [vue];// }// 扩展继承预先定义好的校验规则扩展名称可以省略 eslint-config- 前缀extends: [],// 规则改变一个规则设置rules: {},// 覆盖覆盖指定文件校验规则overrides: {} }; 4项目整合 2、prettier 前端代码格式化与校验 - 掘金 (juejin.cn) 3、Stylelint 前端代码格式化与校验 - 掘金 (juejin.cn) 四、postcss 什么是 PostCSS如何使用插件自动化 CSS 任务 - 掘金 (juejin.cn) 1、作用 一种 JavaScript 工具可将你的 CSS 代码转换为抽象语法树 (AST)然后提供 API应用程序编程接口用于使用 JavaScript 插件对其进行分析和修改 2、本质 不是后处理器也不是预处理器它只是一个将特殊的PostCSS插件语法转换为 Vanilla CSS 的转译器。你可以将其视为 CSS 的Babel工具 3、特点 完全可定制只能使用应用程序所需的插件和功能 与其他预处理器相比它还产生更快的构建时间 五、微前端 关于我理解的微前端 - 掘金 (juejin.cn) 1、是什么 概念来源于微服务摒弃了大型单体应用的方式将前端整体分解为小而简单的块儿这些块儿可以独立的开发、独立测试、独立部署、同时仍然可以聚合为一个产品来使用 2、特点 与技术栈无关  独立开发部署  渐进式增量升级 3、使用场景 不同框架的功能进行合并同个框架的子项目进行合并 4、解决方案 qiankun: 可能是你见过最完善的微前端解决方案 MicroApp: 一款轻量、高效、功能强大的微前端框架 六、打包工具vite Vite 配置篇日常开发掌握这些配置就够了 - 掘金 (juejin.cn) 七、模块化 前端模块化详解(完整版) - 掘金 (juejin.cn) 浅谈前端模块化 - 掘金 (juejin.cn) 1、是什么 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起块的内部数据与实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信 2、优点 避免命名冲突(减少命名空间污染)更好的分离, 按需加载更高复用性高可维护性 3、模块化规范 1CommonJS 每个文件就是一个模块有自己的作用域代码运行时在模块作用域不会污染全局作用域。在一个文件里面定义的变量、函数、类都是私有的对其他文件不可见。在服务器端模块的加载是运行时同步加载的在浏览器端模块需要提前编译打包处理。模块加载是按照代码书写顺序加载的模块可以多次加载但是只会在第一次加载时运行一次然后运行结果就被缓存了以后再加载就直接读取缓存结果。要想让模块再次运行必须清除缓存。暴露模块module.exports value或exports.xxx value引入模块require(xxx),如果是第三方模块xxx为模块名如果是自定义模块xxx为模块文件路径 2ES6Module ES Modules 和 CommonJS的一些区别 使用语法层面CommonJs是通过module.exportsexports导出require导入ESModule则是export导出import导入CommonJs是运行时加载模块ESModule是在静态编译期间就确定模块的依赖ESModule在编译期间会将所有import提升到顶部CommonJs不会提升requireCommonJs导出的是一个值拷贝会对加载结果进行缓存一旦内部再修改这个值则不会同步到外部。ESModule是导出的一个引用内部修改可以同步到外部CommonJs中顶层的this指向这个模块本身而ESModule中顶层this指向undefinedCommonJS加载的是整个模块将所有的接口全部加载进来ESModule可以单独加载其中的某个接口CommonJS无法再浏览器端使用ESModule可以CommonJS无法并行加载多个模块只能按顺序加载ESModule可以并行加载多个模块3amd 4cmd
http://www.tj-hxxt.cn/news/142812.html

相关文章:

  • 网站备案是 备案空间吗网站实现留言功能吗
  • 哪里可学做网站徐州建设局网新网站
  • 山西做网站的企业上海网站建设怎么样
  • 福州百度网站排名优化wordpress自动发文章
  • 网站建设公司需要哪些做普通网站需要多少钱
  • php网页制作代码网站设计优化方案
  • 汕头网站制作全过程推广网上国网
  • 浅析我国门户网站建设不足建个网站公司
  • 做校园文化的网站wordpress怎样用
  • 工信部的网站备案信息做网页怎么做
  • wordpress电影站群哪个地图软件可以看清村庄
  • 建设银行商城网站怎样做百度网站推广
  • 做网站兼容ie平台网站推广方案
  • 城乡建设部网站自助商品房怎么样做一家装修竞标网站
  • 阳西网站seo苏州网站建设网站建设
  • 做电影网站如何寻找资源网站后台怎么添加栏目
  • 做效果图常用的网站新闻热点事件2021(最新)
  • 天蝎做网站建网站莆田外贸网站建设
  • 杭州旺道企业服务有限公司关键词优化的原则
  • 网站建设常熟嘉兴网站快照优化公司
  • 用html做静态网站wordpress代码风格主题
  • 官方网站建设 省心磐石网络外国酷炫网站
  • 成都企业建站模板网络运维工程师招聘
  • 请问做网站和编程哪个容易些wordpress投票功能
  • 吉林省建设厅网站首页少儿编程加盟哪个品牌好
  • seo网站项目讲解西安网站建设xamokj
  • o2o手机网站建设难wordpress get_post_meta
  • 温州网站设计服务商个人网站备案信息
  • 连城县住房和城乡建设局 网站网页升级中每天自动更新什么意思
  • 网站会员发展计划基于大数据的精准营销