wmr 完成的工具化所需 Nodejs 的工具。 当前版本:3.8.0, Node.js 的版本 >=12.17.x
构建工具
- npm
- npm-merge-driver-install 锁文件合并工具
- yarn 包管理工具
- rollup 打包工具
- 插件 rollup-plugin-preserve-shebang
- 插件 rollup-plugin-visualizer
- 插件 @rollup/plugin-alias
- 插件 @rollup/plugin-commonjs
- 插件 @rollup/plugin-dynamic-import-vars
- 插件 @rollup/plugin-json
- 插件 @rollup/plugin-node-resolve
- 插件 @rollup/plugin-replace
- 插件 @rollup/plugin-virtual
命令行工具
- sade 命令行工具(仓库:lukeed/sade: Smooth (CLI) Operator 🎶 (github.com))
HTTP 服务相关
- polk:http 框架
- sirv: 静态资源
- ws:websocket 服务
- bufferutil 工具
- utf-8-validate buffer utf-8 验证器
- https
- devcert 证书相关
版本管理工具
- semver 基于 Nodejs 的版本管理工具
样式工具
- sass: 预处理器
- less:预处理器
- stylis:轻量级预处理器
- postcss: css 前处理器
- postcss-es6: github:postcss/postcss#8.3.6
- cssnano:现代化的 CSS 工具
终端工具
- kolorist: 终端颜色输出控制
编译器(ast、解释器)
- babel
- @babel/core
- @babel/plugin-transform-modules-commonjs
- babel-plugin-transform-jsx-to-htm
- terser
- sucrase
- posthtml
- acorn
- acorn-class-fields
- acorn-import-assertions
- acorn-jsx
- acorn-jsx-walk
- acorn-logical-assignment
- acorn-private-methods
- acorn-static-class-features
- acorn-walk
- astring (ast)
测试
- jest
- jest-puppeteer
- babel-jest
- puppeteer 一个 headless chrome 浏览器,提供了高级 api 方便用于测试
typescript
- tsconfig-paths
- 类型
- @types/jest
数据统计
- totalist totalist - npm (npmjs.com)
临时文件
- tmp-promise 使用 promise 在设备中创建临时文件或者文件夹
sourcemap
- sourcemap-codec
error 处理
- simple-code-frame 显示代码帧的库,一般用于指出错误的位置
- errorstacks 错误堆栈的简单分析器
压缩
- tar-stream:流式tar 解析器和生成器
模块与路径
- es-module-lexer: es 模块司法分析器
- resolve.exports: 解析导出,不依赖文件系统的 exports
- magic-string: 魔法字符串,一般用于 esmodule import/export 导入和导出分析
网络
- node-fetch:nodejs 发送 fetch 请求
环境变量
- cross-env 跨平台的环境变量设置工具
文件相关
- chokidar 文件监听
- mime 文件类型
- ncp 同步的文件/文件夹复制工具
存储与缓存
- async-disk-cache 异步磁盘存储
小结
- 前端工程化属于 nodejs 的特殊一部分,但是对 nodejs 提出与i顶的要求
- wmr 项目完成一个完整的 unbundle 相对对 vite 的难度小
- wmr 服务于 PReact 可以了解 PReact 团队对工程化的思考