写了一个 node 脚本,如何让其他人不用安装 node 也可以直接使用呢

2023-01-17 13:34:23 +08:00
 channg
3129 次点击
所在节点    程序员
18 条回复
nomagick
2023-01-17 13:35:43 +08:00
nexe
vercel/pkg
dlsflh
2023-01-17 13:35:48 +08:00
变成 exe ?
dfkjgklfdjg
2023-01-17 13:36:37 +08:00
没办法,运行得有 js runtime 才行。如果只是简单的处理,可以直接写批处理吧,就不用 NodeJS 了。
crysislinux
2023-01-17 13:37:47 +08:00
所以 go 那么火呢。写个小工具编译部署起来委实便利
channg
2023-01-17 13:38:05 +08:00
@nomagick #1 在看 pkg 谢谢
JiuW
2023-01-17 13:39:33 +08:00
使用 pkg 打包
wangtian2020
2023-01-17 13:42:23 +08:00
下限:用 electron 打包成 exe 安装包
angrylid
2023-01-17 13:48:38 +08:00
把 NodeJS 核心部分和 index.js 和 start.cmd 打成一个压缩包就行了。

你要是实在闲得慌可以用 Go 重写一遍。
dc2002007
2023-01-17 13:48:39 +08:00
你得把 node 环境和你要执行的命令一起打包,但这种需求,我肯定用 golang 写,毕竟二进制的东西还是香
autoxbc
2023-01-17 14:06:53 +08:00
考虑下 Deno ,JS 一键打包 exe ,支持跨平台交叉编译
https://deno.land/manual/tools/compiler
zsj1029
2023-01-17 14:08:16 +08:00
当然是用同样语法的,同样 eventloop 的 dart 重写,然后编译二进制独立运行
同样写 js 还是很喜欢 dart 的
majula
2023-01-17 14:09:00 +08:00
没有别的办法,要么提醒用户安装 node ,要么你把 node 打包进去。而且不管从用户还是开发者的角度,都建议选择前者

所以写脚本的时候,为了让更多人用着方便,尽可能要选用大部分操作系统发行版会预装运行环境的那些语言。比如 shell/python/perl ...
AyaseEri
2023-01-17 14:22:19 +08:00
写一个 js 运行时就行了
Pipecraft
2023-01-17 14:31:45 +08:00
如果对方已经安装 docker ,可以用 docker
```
docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app node:14-alpine node script.js
```
lzj724
2023-01-17 14:50:08 +08:00
用 c#重构吧,写 wpf
mmc
2023-01-17 16:46:50 +08:00
一直在用 pkg
yArna
2023-01-17 23:02:54 +08:00
可以试试 CosyNode ( https://github.com/Moonvy/CosyNode) 把脚本打包成 exe


和 vercel/pkg 之类的工具相比原理更简单,没有 Snapshot 机制(打包后与原始脚本有很多差异)
zhuweiyou
2023-01-18 09:40:53 +08:00
pkg

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/909463

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX