TypeScript 如何用 esbuild 编译
日常做前端开发时,不少人会遇到“明明代码写着没问题,一运行就报错”的情况,除了语法错误,工具的编译配置没选对,也是常见的坑。比如用 TypeScript 写代码,要是选对了编译工具,就能省不少调试的功夫,而 esbuild 就是最近很火的一款轻量编译工具,它比传统工具速度快好几倍,特别适合日常开发和构建。
先搞懂:为什么选 esbuild 编译 TypeScript
很多人用 TypeScript 时,第一反应会想到 Babel 或者 tsc(TypeScript 官方自带的编译工具),但 esbuild 有个很实在的优点——快。举个生活化的例子:用 tsc 编译一个中等规模的项目,可能要等十几秒,而 esbuild 几秒钟就能搞定,就像同样是从家到超市,走路要十分钟,骑共享车两分钟,效率差得很明显。而且 esbuild 不用复杂的配置,哪怕是新手,照着步骤来也能搞定,不用花好几个小时研究配置文件。

第一步:准备好基础环境
用 esbuild 之前,得先把 Node.js 和 npm 装到电脑上,这是前端开发的基础,就像做饭得先有灶台和食材。打开电脑的命令行工具(Windows 用 CMD 或者 PowerShell,Mac 用终端),输入 node -v 和 npm -v,如果能显示版本号,说明环境没问题。接下来,在自己的项目文件夹里,用命令 npm init -y 初始化项目,会生成一个 package.json 文件,用来管理项目的依赖和脚本。
第二步:安装 esbuild 和 TypeScript 依赖
接下来要安装两个东西:一是 esbuild 本身,二是 TypeScript 的类型声明文件,这样 esbuild 才能识别 TypeScript 的语法。在命令行里输入 npm install esbuild typescript --save-dev,这里用 --save-dev 是因为这些工具只在开发阶段用,不用放到最终的上线代码里。安装完后,项目里会多一个 node_modules 文件夹,这是 npm 存放依赖的地方,不用手动修改里面的文件。
第三步:写个简单的 TypeScript 测试代码
先写个小例子测试一下,看看能不能顺利编译。在项目文件夹里新建一个 src 文件夹,里面放一个 index.ts 文件,写一段简单的代码:
`typescript
const greet = (name: string) => {
return Hello, ${name}!;
};
console.log(greet("TypeScript with esbuild"));
`
这段代码的意思是,定义一个接收字符串参数的函数,返回问候语,然后打印出来。就像写个便签,告诉别人“给我名字,我给你回问候”,很简单。
第四步:用 esbuild 编译 TypeScript 代码
现在重点来了,怎么用 esbuild 编译这个 .ts 文件。有两种常用的方法,新手可以先从命令行直接运行开始。打开命令行,在项目根目录输入:
npx esbuild src/index.ts --bundle --outfile=dist/bundle.js --platform=browser
解释一下几个关键参数:src/index.ts 是要编译的入口文件;--bundle 是把所有依赖的代码打包成一个文件,就像把零散的零食都装到一个袋子里,方便携带;--outfile 指定编译后文件的存放路径和名字;--platform=browser 是说这个编译后的代码是给浏览器用的。运行后,项目里会自动生成 dist 文件夹,里面有编译好的 bundle.js,打开这个文件,就能看到转成 JavaScript 的代码,语法更精简,适合浏览器运行。
如果不想每次都手动输命令,可以把编译命令写到 package.json 里。打开 package.json,找到 scripts 这一项,添加 "build": "esbuild src/index.ts --bundle --outfile=dist/bundle.js --platform=browser",之后只要在命令行输入 npm run build,就能自动编译,不用再敲一长串命令,就像把做饭的步骤提前写在菜谱上,下次直接按菜谱操作就行。
小补充:处理类型检查和其他配置
要是你需要 TypeScript 的类型检查(比如避免写错变量类型),可以先建个 tsconfig.json 文件,这是 TypeScript 的配置文件,能告诉编译器要遵守哪些规则。用命令 npx tsc --init 就能生成这个文件,里面默认的配置大多够用,不用改太多。不过要注意,esbuild 本身不做类型检查,它只管编译语法,要是需要类型检查,得再单独加个命令,比如在 package.json 的 scripts 里加 "check-types": "tsc --noEmit",运行 npm run check-types 就能检查类型错误,和编译分开,效率更高。
用 esbuild 编译 TypeScript 就是这么简单,不用复杂的配置,速度还快,特别适合日常开发和小项目。要是你之前觉得 TypeScript 编译麻烦,不妨试试这个方法,很快就能上手。