🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] > [esbuild.github.io](https://esbuild.github.io/getting-started/#download-a-build) > [中文](https://esbuild.bootcss.com/getting-started/#build-scripts) ## 概述 Esbuild是一款新一代的JavaScript打包和压缩工具 。它使用Golang开发,速度非常快,可以比常见的打包工具快10~100倍 。与传统的打包工具不同,Esbuild不使用AST,优化了构建流程 。它主打性能优势,耗时只有Webpack的2%~3% 。Esbuild可以用于模块化和ESM,提供了与Webpack、Rollup、Parcel相似的资源打包能力 。 <br/> **快的原因** * 它是用 Go 语言编写的,该语言可以编译为原生代码; * 解析,打印和源映射生成全部完全并行化; * 无需昂贵的数据转换,只需很少的几步即可完成所有操作; * 编写代码时处处注意速度表现,并尽量避免不必要的配置 **支持类型** * CommonJS 模块 * ES6 模块 * 使用’–bundle’与 ES6 模块的静态绑定打包 * 使用’–minify’完全压缩(空格、标识符和修饰符) * 启用’–sourcemap’时,完全支持源映射 * .jsx 文件的 JSX 到 JavaScript 转换 * 通过’–define’进行编译时标识符替换 * 使用 package.json 中的’browser’字段进行路径替换 * 自动检测 tsconfig.json 中的’baseUrl’ ## 安装 npm 安装 ``` npm install -g esbuild-linux-64 # for Linux npm install -g esbuild-darwin-64 # for macOS npm install -g esbuild-windows-64 # for Windows npm install -g esbuild-wasm # for all other platforms ``` ## 场景 ### 浏览器环境 ``` esbuild app.jsx --bundle --minify --sourcemap --target=chrome58,firefox57,safari11,edge16 ``` - `--sourcemap` 可用户开发环境 - ` --minify` 启用压缩 如果你引入的包只在node 中运行,可以通过配置 `package.json`进行配置,替换为浏览器友好的包 ``` { "browser": { "path": "path-browserify" } } ``` ### node 环境打包 ``` esbuild app.js --bundle --platform=node --target=node10.4 ``` 可对包进行压缩,并且node 自带的包不会打入进去,如`fs` 等 ### 开发与生产 开发 ``` esbuild example.jsx --bundle '--define:process.env.NODE_ENV="development"' --outfile=out.js ``` 生产 ``` esbuild example.jsx --bundle '--define:process.env.NODE_ENV="production"' --minify --outfile=out.js ```