5

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

 11 months ago
source link: https://www.v2ex.com/t/982100
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

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

  zzz6519003 · 1 小时 59 分钟前 · 326 次点击
6 条回复    2023-10-15 13:04:58 +08:00
Xbathy

Xbathy      1 小时 46 分钟前

build 也有可能是把 ts 编译成 js
totoro52

totoro52      1 小时 41 分钟前

不打包 那个 JS 体积几十 M , 根本没法线上用
Kirscheis

Kirscheis      1 小时 35 分钟前

> "js 不用 build 和不用打包是一个意思吗?"

打包不是一个通用的说法,所以可以是一个意思,取决于上下文

> "我理解的 build 就是把 js 压缩成乱码一般~"

不是一个过程,js 里 Build 主要做几件事:

1. 按 ui 描述语言生成代码
2. 把多文件合并成一个
3. 把高级格式和语法糖转变成各个引擎的原生 js
4. 混淆,也就是你说的变成乱码
5. 压缩
flyqie

flyqie      1 小时 35 分钟前 via Android

build 比 pack 来说应该是步骤多的。

ts 转 js 好像很少有人会说叫 pack 。。
XCFOX

XCFOX      31 分钟前

我理解 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
learningman

learningman      11 分钟前

build 指的是 transpile 和 bundle ,minify 是个可选选项,但是为啥不开呢?

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK