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 11 天前
我之前好像用过 npx ,后面好像是兼容还是啥的,选择 pkg
|
![]() |
2
songray OP @byte10 你说的应该 nexe 和 pkg 吧,这俩也是打包可执行文件的工具,npx 是执行远程脚本用的。
其实原理都是把代码嵌入到 js 运行时里面,运行的时候再提取代码,不过因为 js 有 cjs 和 esm 两种格式,所以确实有可能兼容性问题。 |
![]() |
3
pursuer 11 天前
txiki.js 应该可以更小一点,我也想在 txiki.js 上实现 node 兼容的,但不太顺利,网上找到的 polyfill 大部分都是针对浏览器环境,对 node 服务器侧的支持很弱
|
![]() |
4
lisxour 11 天前
兼容性怎样,我意思是一整个完整的项目,不是简单的纯单体 js ,包括.node 加载,cjs/esm 兼容,各式各样的东西
|
![]() |
5
songray OP @lisxour
和 pkg 以及 nexe 一样,需要自己使用 esbuild 、ncc 之类的工具把项目转换成单个的 js 文件,所以兼容性是那些工具保证的。 |
![]() |
6
BugCry 11 天前
在用 bun ,有空体验下 op 的这个
|
![]() |
7
chairuosen 11 天前
没有 JIT 是不是就不能用 eval ?
|
![]() |
8
iorilu 11 天前
不错
现在 nodejs, python 这些急需一种好的小体积打包方式 虽然都说 rust 好, 但毕竟没多少人玩得转 |
![]() |
9
zhwithsweet 11 天前
nice !等 fs 支持好了,我来试用下
|