为什么使用 esbuild
- 快:比 rollup + terser 快一百倍
- ts-node 需要为了开发环境单独配置,不能和构建使用相同配置,冗余了。而且不好配
- vite 多出了很多用不到的功能
思路
- 开发环境直接使用构建版本,配合指定开发环境变量完成:使用 esbuild 脚本完成构建
- 自动重启:使用 nodemon 监控文件变化,指定
exec
脚本,重新构建和运行
如何使用
使用 esbuild js api 配置构建流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import esbuild from "esbuild" import { esbuildPluginNodeExternals } from "esbuild-plugin-node-externals" ;(async () => { await esbuild .build({ entryPoints: ["./src/index.ts"], bundle: true, platform: "node", target: "node12", outfile: "dist/index.js", plugins: [esbuildPluginNodeExternals()], }) .then(() => process.exit(0)) })()
|
使用 nodemon 实现文件修改后自动构建并运行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| { "scripts": { "start": "node ./dist/index.js", "dev": "nodemon ./dist/index.js", "build": "rimraf dist && node ./scripts/build.mjs" }, }
{ "exec": "pnpm run build && pnpm run start", "watch": ["./src"], "ext": "ts", "env": { "NODE_ENV": "development" } }
|