
https://github.com/Ray-D-Song/lexe
也可以使用 npx lexe build -i=index.js 快速体验一下
rt ,周末写的小玩具,魔改了 AWS 的 Javascript 运行时 llrt 。
llrt 提供了大多数关键的 Node.js API ,但因为没有 JIT ,所以这个工具适合轻量级服务和 cli 工具。
实现上参考了 deno compile 和 bun compile ,目前一个 hello-world 打包出来是 10M ,虽然还可以更小一些,但相较于 deno 和 bun 的 50~60M 已经算可以了。
1 byte10 246 天前 我之前好像用过 npx ,后面好像是兼容还是啥的,选择 pkg |
2 songray OP @byte10 你说的应该 nexe 和 pkg 吧,这俩也是打包可执行文件的工具,npx 是执行远程脚本用的。 其实原理都是把代码嵌入到 js 运行时里面,运行的时候再提取代码,不过因为 js 有 cjs 和 esm 两种格式,所以确实有可能兼容性问题。 |
3 pursuer 246 天前 txiki.js 应该可以更小一点,我也想在 txiki.js 上实现 node 兼容的,但不太顺利,网上找到的 polyfill 大部分都是针对浏览器环境,对 node 服务器侧的支持很弱 |
4 lisxour 246 天前 兼容性怎样,我意思是一整个完整的项目,不是简单的纯单体 js ,包括.node 加载,cjs/esm 兼容,各式各样的东西 |
5 songray OP @lisxour 和 pkg 以及 nexe 一样,需要自己使用 esbuild 、ncc 之类的工具把项目转换成单个的 js 文件,所以兼容性是那些工具保证的。 |
6 BugCry 246 天前 在用 bun ,有空体验下 op 的这个 |
7 chairuosen 246 天前 没有 JIT 是不是就不能用 eval ? |
8 iorilu 246 天前 不错 现在 nodejs, python 这些急需一种好的小体积打包方式 虽然都说 rust 好, 但毕竟没多少人玩得转 |
9 zhwithsweet 246 天前 nice !等 fs 支持好了,我来试用下 |