🎖️使用 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 切换的好时机。


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

目录
相关文章
|
4月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
813 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
JavaScript 前端开发 API
Vue 3.3 + Vite 4.3 + TypeScript 5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(四)
Vue 3.3 + Vite 4.3 + TypeScript 5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(四)
|
自然语言处理 JavaScript 前端开发
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(1)
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(1)
|
缓存 JavaScript 前端开发
探讨如何通过一系列优化策略来提升TypeScript与Webpack的构建性能。
【6月更文挑战第11天】本文探讨了优化TypeScript与Webpack构建性能的策略。理解Webpack的解析、构建和生成阶段是关键。优化包括:调整tsconfig.json(如关闭不必要的类型检查)和webpack.config.js选项,启用Webpack缓存,实现增量构建,代码拆分和懒加载。通过这些方法,可以提升构建速度,提高开发效率。
158 0
|
JavaScript 前端开发 应用服务中间件
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(2)
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(2)
|
JavaScript 前端开发 编译器
TypeScript 详解之 tsc 命令行编译器
TypeScript 详解之 tsc 命令行编译器
|
JavaScript 前端开发
The TypeScript Compiler - Version 5.2.2,tsc -w无效怎么办?
The TypeScript Compiler - Version 5.2.2,tsc -w无效怎么办?
221 0
|
JavaScript 前端开发 Java
Vue 3.3 + Vite 4.3 + TypeScript 5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(一)
Vue 3.3 + Vite 4.3 + TypeScript 5+ Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(一)
|
监控 JavaScript 数据挖掘
TypeScript代码示例:构建灵活可扩展的员工上网管控平台
使用TypeScript构建的员工上网监控平台示例展示了如何通过`InternetMonitoringPlatform`类实现实时监控、数据分析和数据自动提交。类包含`monitorInternetActivity`用于监控行为,`analyzeData`用于分析数据,`autoSubmitToWebsite`借助axios库将数据POST到网站。此平台旨在提高企业安全性和效率。
234 3
|
前端开发 JavaScript 安全
使用React、TypeScript和Ant Design构建现代化前端应用
使用React、TypeScript和Ant Design构建现代化前端应用
628 0

热门文章

最新文章