Open dailynodejs opened 3 years ago
A fast, global content delivery network for ES Modules. All modules in NPM are transformed to ESM by esbuild.
服务地址:http://esm.sh/
基础概念 esm
ECMA Script Modules
MDN 地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Modules
如果不为体积,为了速度可以设置:
terser file.js -m
API:
await minify(code, { compress: false, mangle: true });
d3.js | size | gzip size | time (s) |
---|---|---|---|
original | 451,131 | 108,733 | - |
terser@3.7.5 mangle=false, compress=false | 316,600 | 85,245 | 0.82 |
terser@3.7.5 mangle=true, compress=false | 220,216 | 72,730 | 1.45 |
terser@3.7.5 mangle=true, compress=true | 212,046 | 70,954 | 5.87 |
babili@0.1.4 | 210,713 | 72,140 | 12.64 |
babel-minify@0.4.3 | 210,321 | 72,242 | 48.67 |
babel-minify@0.5.0-alpha.01eac1c3 | 210,421 | 72,238 | 14.17 |
文档地址:https://github.com/terser/terser#terser-fast-minify-mode
默认: esnext
esbuid app.js --target=es2020,chrome58
地址:https://github.com/umijs/plugins/blob/master/packages/plugin-esbuild/src/index.ts
地址:https://github.com/privatenumber/esbuild-loader/issues
注意对 webpack 版本的依赖:https://github.com/privatenumber/esbuild-loader/blob/develop/package.json#L49
"webpack": "^4.40.0 || ^5.0.0"
go 1.11 版本引入的官方包管理
源码地址:https://github.com/evanw/esbuild/blob/master/go.mod
module github.com/evanw/esbuild
go 1.13
require golang.org/x/sys v0.0.0-20200501145240-bc7a7d42d5c3
esbuild
随着产物越来越大,编译上线和 CI 的时间越来越长,其中 1/3 及更多时间都在压缩部分,OOM 的问题也来源于压缩,UglifyCache 和 autoExternal 是用来解决产物大了之后压缩慢从而可能导致 OOM 的问题
git 地址:https://github.com/evanw/esbuild
快的原因是啥?
好像给我安装了一个
东西
看看 install.js 的内容:
2、按 platform 分为对应的 knownUnixlikePackages 和 installOnUnix
3、看看 installOnUnix
4、installUsingNPM
通过 npm 来下载对应的包
bundler 功能
minifier 功能