🎖️使用 esbuild 简化 TypeScript 构建并跳过 tsc/tsx

简介: JavaScript 生态系统一直在不断创新,最近的一位游戏规则改变者是 esbuild,这是一个极速的 JavaScript 和 TypeScript 打包器。

嗨,大家好!这里是道长王jj~ 🎩🧙‍♂️

JavaScript 生态系统一直在不断创新,最近的一位游戏规则改变者是 esbuild,这是一个极速的 JavaScript 和 TypeScript 打包器。与传统的 TypeScript 编译器(如 tsc)不同,esbuild 提供了极快的编译速度和简单的配置。本文将深入探讨如何使用 esbuild 处理 TypeScript 编译,并强调其提供的丰富参数。

为什么选择 esbuild 而不是 tsc?

  • 性能:esbuild 利用 Go 语言的性能优势,相比其他打包器和编译器,提供了惊人的快速打包时间。
  • 简单性:esbuild 的配置相对简单,可以轻松地集成到现有项目中。
  • 灵活性:esbuild 提供多种选项,如输出不同格式、设置平台目标等。

配置 esbuild 用于 TypeScript

首先,安装esbuild:

npm install esbuild --save-dev

下面是推荐的在 NPM 脚本中配置 esbuild 的示例:

{
   
  "scripts": {
   
    "build": "esbuild `find src \\( -name '*.ts' \\)` --platform=node --target=esnext --outdir=build --format=cjs",
    "build:watch": "npm run build -- --watch",
    "start": "node build | npx pino-pretty",
    "start:watch": "node --watch -r dotenv/config build | npx pino-pretty",
    "dev": "concurrently \"npm:build:watch\" \"npm:start:watch\""
  }
}

解释一下 esbuild 的参数:

  • 输入文件find src \\( -name '*.ts' \\) 部分会定位 src 目录下所有 TypeScript 文件,并将它们提供给 esbuild。
  • platform--platform=node 标志确保生成的代码与 Node.js 环境兼容。其他可能的值包括 browser,用于特定于浏览器的输出。
  • target:使用 --target=esnext,我们指示 esbuild 输出最新版本的 ECMAScript。这在想要利用最新语言功能时非常有用。其他值可以是 es6es2016 等,具体取决于您的需求。
  • outdir--outdir=build 选项指定我们编译文件的输出目录。您可以将 build 替换为您选择的任何目录名称。
  • format--format=cjs 命令指示要使用的模块系统。我们在这里选择了 CommonJS(cjs),但 esbuild 还支持 esm(ES 模块)、iife 等。
  • watch:通过添加 --watch,esbuild 可以监听文件更改并在需要时重新编译。这在开发过程中非常有用,无需手动触发重新编译。
  • Concurrently:虽然不是 esbuild 的参数,但对我们的设置至关重要。concurrently 可以同时运行多个命令。在我们的脚本中,它允许我们同时监视和构建,然后运行我们的应用程序。

为什么选择 esbuild

  • 使用 esbuild 可以显著降低编译时间。
  • 将打包和编译合并为一个工具,简化了我们的流程。
  • esbuild 的参数使开发人员能够根据需求细粒度地控制构建过程。

通过选择 esbuild 作为首选的 TypeScript 编译器,可以加速开发周期,简化构建流程。参数数组允许根据具体需求进行细致的构建配置。如果您尚未尝试过,现在可能是从传统的 tsc 切换的好时机。


🎉 你觉得怎么样?这篇文章可以给你带来帮助吗?当你处于这个阶段时,你发现什么对你帮助最大?如果你有任何疑问或者想进一步讨论相关话题,请随时发表评论分享您的想法,让其他人从中受益。🚀✨

目录
相关文章
|
6天前
|
自然语言处理 JavaScript 前端开发
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(1)
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(1)
|
10月前
|
JavaScript 前端开发 API
Vue 3.3 + Vite 4.3 + TypeScript 5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(四)
Vue 3.3 + Vite 4.3 + TypeScript 5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(四)
|
6天前
|
缓存 JavaScript 前端开发
【TypeScript技术专栏】TypeScript与Webpack构建优化
【4月更文挑战第30天】本文探讨了优化TypeScript与Webpack构建性能的策略。理解Webpack的解析、构建和生成阶段是关键。优化包括:调整tsconfig.json(关闭不必要的类型检查,适配目标环境)和webpack.config.js(配置entry、output、resolve,使用压缩插件)。启用Webpack缓存和增量构建,利用代码拆分与懒加载,能有效提升构建速度和开发效率。
|
6天前
|
JavaScript 前端开发 编译器
TypeScript的编译器、编辑器支持与工具链:构建高效开发环境的秘密武器
【4月更文挑战第23天】TypeScript的强大力量源于其编译器、编辑器支持和工具链,它们打造了高效的开发环境。编译器`tsc`进行类型检查、语法分析和代码转换;编辑器如VS Code提供智能提示、错误检查和格式化;工具链包括Webpack、Rollup等构建工具,Jest、Mocha等测试框架,以及代码质量和性能分析工具。这些组合使用能提升开发效率、保证代码质量和优化项目性能。
|
6天前
|
JavaScript 前端开发 应用服务中间件
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(2)
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(2)
|
6天前
|
监控 JavaScript 数据挖掘
TypeScript代码示例:构建灵活可扩展的员工上网管控平台
使用TypeScript构建的员工上网监控平台示例展示了如何通过`InternetMonitoringPlatform`类实现实时监控、数据分析和数据自动提交。类包含`monitorInternetActivity`用于监控行为,`analyzeData`用于分析数据,`autoSubmitToWebsite`借助axios库将数据POST到网站。此平台旨在提高企业安全性和效率。
145 3
|
6天前
|
前端开发 JavaScript 安全
使用React、TypeScript和Ant Design构建现代化前端应用
使用React、TypeScript和Ant Design构建现代化前端应用
34 0
|
6天前
|
JavaScript 安全 容器
Vue3 + setup + TypeScript: 构建现代、类型安全的Vue应用的关键技巧总结
当使用 setup 的时候,组件直接引入就可以了,不需要再自己手动注册
|
10月前
|
JavaScript 前端开发 Java
Vue 3.3 + Vite 4.3 + TypeScript 5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(一)
Vue 3.3 + Vite 4.3 + TypeScript 5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(一)
|
6天前
|
JavaScript 前端开发 开发工具
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(3)
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(3)