本文总结了我在移动开发过程中要写一个babel插件,故而做了一个总结# 🥙一、前言抽象语法树(Abstract Syntax Tree,AST),是源代码(不仅限于JavaScript,同时还应用于其他语言,例如: Python,Rust等)语法结构的⼀种抽... `@babel/types `用于构建AST节点和判断AST节点类型- `@babel/generate` 打印 AST,生成目标代码和 `sorucemap`(即将ast转换成js代码)babel的处理步骤:主要有三个阶段:解析(parse), 转换 (transform),生成(gene...
Rollup 和 webpack 的插件机制是截然不同的,虽然有类似 unplugin[2] 的上层封装,但是其 API 层仍然较为薄弱,难以提供较复杂的插件能力,尤其是对于 Modern.js 这种比较重型的框架,最终的效果往往是代码里充斥着各种... 应用构建相比库构建需要更强的插件扩展能力,而 esbuild 难以满足这个需求,如缺失 onTransform hook 导致不同 transform 的扩展组合很难进行(如 sass -> postcss -> css),你只能将所有的 transform 逻辑写到一个 on...
CommonJS 规范最早是 Node 独有的规范,目前也仍然广泛使用,比如在 Webpack 中就能见到它。浏览器中使用需要用到`Browserify`解析。 Node 在实现中并非完全按照规范实现,而是对模块规范进行了一定的取舍,同时也增加... 使用到的模块是 babel-generator。### **CSS 工程**如何维护大型项目的 z-index,如何维护 CSS 选择器和样式之间的冲突 ?### **CSS Modules****CSS Modules 是指:项目中的所有 class 名默认都是局部起作用的...
plugins: [ '@typescript-eslint', ], extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended', ],};```#### 关于 Babel 和 `babel-eslint`Babel 现在支持解析 TypeScript source code 但是不进行类型检查。这是使用 TypeScript Compiler 的一个替代方法。通过插件,它同样也可以支持许多其他 TypeScript Compiler 不支持的语法。`typescript-eslint` 是由 TypeScript Compiler ...