js 不用 build 和不用打包是一个意思吗?我理解的 build 就是把 js 压缩成乱码一般~

查看 61|回复 4
作者:zzz6519003   
Xbathy   
不打包 那个 JS 体积几十 M , 根本没法线上用
totoro52   
> "js 不用 build 和不用打包是一个意思吗?"
打包不是一个通用的说法,所以可以是一个意思,取决于上下文
> "我理解的 build 就是把 js 压缩成乱码一般~"
不是一个过程,js 里 Build 主要做几件事:
1. 按 ui 描述语言生成代码
2. 把多文件合并成一个
3. 把高级格式和语法糖转变成各个引擎的原生 js
4. 混淆,也就是你说的变成乱码
5. 压缩
Kirscheis   
build 比 pack 来说应该是步骤多的。
ts 转 js 好像很少有人会说叫 pack 。。
flyqie   
我理解 build 是把源代码编译成可直接运行的代码,比如把 ts 编译成 js ,把 ESNext 编译成 ES5 ,把 js 编译成字节码。
常用的工具有:
https://github.com/microsoft/TypeScript
https://github.com/babel/babel
https://github.com/swc-project/swc
https://github.com/bytenode/bytenode
打包(bundle | pack)根据不同的项目类型有不同的操作。
对于通用模块项目(npm package),打包需要将源代码编译成 esm 模块以及 cjs 模块,有时还需要输出 .d.ts 类型声明文件。
常用的工具有:
https://github.com/rollup/rollup
https://github.com/evanw/esbuild
https://github.com/unjs/unbuild
https://github.com/egoist/tsup
https://github.com/developit/microbundle
对于应用项目(app),打包需要将源代码以及依赖资源(cs, json, 图片, 甚至 node 本身) 构建成静态文件或者可执行文件,目的是减少 app 体积、方便部署。
常用的工具有:
https://github.com/evanw/esbuild
https://github.com/vitejs/vite
https://github.com/webpack/webpack
https://github.com/web-infra-dev/rspack
https://github.com/nexe/nexe
https://github.com/vercel/pkg
您需要登录后才可以回帖 登录 | 立即注册

返回顶部