[推荐] vite
2021-10-30
对比 | vite | create-react-app | snowpack |
---|---|---|---|
优点 | 非常快 | react 官方脚手架 | react 是一等公民 |
支持 ts 配置 | 非常快 | ||
开发者友好 | |||
缺点 | vue 是一等公民 | 强制锁定版本 | 存在许多兼容性问题 |
若非 snowpack 实在不争气,吾辈也不至于把 vite 作为 react 脚手架的首选,社区已经用脚投票了,参考:snowpack vs vite
- 优点
- 基于 esbuild 实现的非常快速地打包工具(尤其是开发环境),参考 为什么选 Vite
- 配置非常简单,甚至可以做到零配置,基本上就是使用插件
- 缺点
- 开发环境不检查 ts,但打包时检查,导致不一致的行为,但有人开发了插件 vite-plugin-checker
- 对 webpack 社区不兼容,而且开发环境使用原生 esmodule 也对 乾坤 这类框架支持不好,也有人开发了插件 vite-plugin-qiankun
[推荐] rollup 插件
- rollup-plugin-visualizer: 分析 bundle 尺寸
[推荐] rollup
2021-10-30
对比 | rollup | webpack | esbuild |
---|---|---|---|
优点 | 易于使用 | 非常灵活 | 非常快 |
库友好 | 生态庞大 | 支持 js/go API 和插件 | |
缺点 | 生态还不是那么丰富 | 灵活是一把双刃剑 | 使用 go 编写,生态上可能存在问题 |
- 优点
- 对打包 lib 比较友好,生态非常大,许多知名的库都使用它构建
- 缺点
- 不支持 webpack 那么多的配置项,更多是依赖于插件提供能力(但被 vite 证明依然能够构建应用类项目)
- 相比于 esbulid 性能较慢(其中有 nodejs 的锅)
[推荐] esbuild
2021-10-30
esbuild 速度非常快,同样支持 js 调用了 js 插件 api,在打包 lib 时非常好用和快速。但同时,它的插件确实不如 rollup 那么多,许多插件没有或者不完善,需要自行实现。
优点
[测试] yarn2+
2021-10-30
- 优点
- 功能丰富的包管理器
- pnp 理念很先进,类似于 java 的 jar 包
- 支持插件 api
- 缺点
- pnp 社区支持太差,包括 vite/ts/esbuild 在内的多个社区项目支持均有问题
- 有很多细微的问题,参考 yarn2 使用
- 存在性能问题,生产项目每次 yarn install 至少 7s,参考 yarn install link step very slow
[推荐] pnpm
2021-10-30
对比 | pnpm | yarn |
---|---|---|
没有任何变更 | real 0m2.167s | real 0m2.947s |
user 0m0.060s | user 0m0.060s | |
sys 0m0.075s | sys 0m0.120s |
- 优点
- 非常快速地 npm 替代品
- 使用非常有趣的方法加速依赖安装,有点类似于 maven 全局缓存
- 对 monorepo 有基本支持
- 缺点
- 不兼容某些包,例如 vuepress2
[推荐] vitest
单元测试工具,非常快,支持 esm,wallaby.js 默认支持。