本文总结了我在移动开发过程中要写一个babel插件,故而做了一个总结# 🥙一、前言抽象语法树(Abstract Syntax Tree,AST),是源代码(不仅限于JavaScript,同时还应用于其他语言,例如: Python,Rust等)语法结构的⼀种抽... ⾼级语⾔的编译、机器码的⽣成⼀些⾼级编辑器的错误提示、代码⾼亮、代码⾃动补全;- 对于前端来说很多⼯具,例如 elint 、 pretiier 对代码错误或⻛格的检查,babel、typescript对代码的编译处理等等。 [AST在线...
业务团队也尝试使用了 Vite,我们 Infra 团队也尝试接入了 Vite,采用的方案也是社区上较为流行的双引擎方案,即上层框架侧是统一的配置和插件,但是底层的引擎是可以在 Vite 和 webpack 进行切换的,这虽然解决了一部分问题,但是其实带来了更大的挑战* 插件的跨引擎复用非常困难,Rollup 和 webpack 的插件机制是截然不同的,虽然有类似 unplugin[2] 的上层封装,但是其 API 层仍然较为薄弱,难以提供较复杂的插件能力,尤其是对于 Mod...
灵活的插件扩展机制- 可以自定义规则- 可以根据错误定位到对应的规则- 支持 `ES6`- 支持`JSX`##### 缺点- 更大的灵活性意味着更复杂的配置- 比前面两个慢## TypeScript### [TSLint](https://palantir.github.io/tslint/) / [typescript-eslint](https://typescript-eslint.io/)用来检查 TypeScript 的,但是 2019 年已经废弃了,现在使用的是 ESLint,配合 [typescript-eslint](https://typescript-...
=&rk3s=8031ce6d&x-expires=1716222069&x-signature=cH3q2OJk1DiDx7IRp51y%2BaupIYM%3D) 「大咖面对面」是一个由 ByteDance Web Infra 联合稀土掘金举办的系列活动,每一期都会邀请一两位业内大咖来... 👬 在 **Vercel 打工的大佬们** :排名不分先后,全部随缘* Sebastian Markbage : 原 React 团队 Tech Lead* Rich Harries: sveltejs 作者 & rollup 核心贡献者* Donny/강동윤:swc 作者* Tobias Koppers : web...
```### 路由因为需要页面路径地址最后默认后缀`.html`,当时就没有使用nuxt默认的路由规则,而是在`app/router.options.ts`中,重新导出了路由规则。``` typescriptimport type { RouterConfig } from '@nuxt/schema';export default { routes: () => [ ... ]}```### nuxt.config.ts文件配置- runtimeConfig 可以放置公共API接口地址,各种key等- css 公共的css导入- modules 使用modules的方式引入eleme...
即使加上了d.ts定义也只能兼顾在当前的项目类型提示完善。3. 有调试SDK的需求时,看着一坨编译后的代码一筹莫展,无从下手。即使改了之后,因为跨端通讯SDK的验证链路也相对较长(双端与H5的双向通讯都要进行验证),也... 所以在翻译这些功能时需要格外注意执行的顺序和变量的赋值;## 重构之后的结构### 整体结构采用TypeScript重写,选择面向对象语法,保留原先的发布-订阅模式,构建流程采用rollup打包,最终生成umd/cjs/esm三种模...
"typescript": "^4.9.3", "unplugin-auto-import": "^0.12.1", "vconsole": "^3.15.0", "vite": "^4.0.0", "vue-tsc": "^1.0.11" }```| 依赖名称 | 描述 ||--|--||@originjs/vite-plugin-commonjs |项目中混用 require 和 import ,即存在混用 commonJS 和 ES6 模块的情况,需要用该插件的transformMixedEsModules 配置进行 hotfix|| @rollup/plugin-inject| 使用该插件注入全局 jQuery 环境 || @...