为什么使用 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"   } }
 
  |