很早以前,要运行js,则必须安装nodejs,且没什么办法可以把js直接构建成一个可执行的文件。
后来出现一个pkg的npm包,可以用来将js打包成可执行的文件。
我好像用过这个包,但是似乎中间出过一些问题。
现在是2023年,前端有了新的气象。
除了nodejs外,还有其他的后来新秀,如deno, 还有最近表火的bun
另外nodejs本身也开始支持打包独立二进制文件了,但是需要最新的20.x版本,而且我看了它的使用介绍文档,single-executable-applications, 看起来是有有点复杂,光一个构建就写了七八步。
所以今天只比较一些deno和bun的构建出的文件大小。
准备的js文件内容
// app.js
console.log("hello world")
deno构建指令: deno compile --output h1 app.js
, 构建产物为h1
bun构建指令: bun build ./app.js --compile --outfile h2
, 构建产物为h2
-rw-r--r--@ 1 wangduanduan staff 26B Jun 1 13:34 app.js
-rwxrwxrwx@ 1 wangduanduan staff 78M Jun 1 13:59 h1
-rwxrwxrwx@ 1 wangduanduan staff 45M Jun 1 14:01 h2
源代码为26b字节
- deno构建相比于源码的倍数: 3152838
- bun构建相比于源码的翻倍: 1804415
- deno构建的可执行文件相比bun翻倍:1.7