V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
channg
V2EX  ›  程序员

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

  •  
  •   channg · 2023-01-17 13:34:23 +08:00 · 3103 次点击
    这是一个创建于 658 天前的主题,其中的信息可能已经有所发展或是发生改变。
    18 条回复    2023-01-18 09:40:53 +08:00
    nomagick
        1
    nomagick  
       2023-01-17 13:35:43 +08:00   ❤️ 1
    nexe
    vercel/pkg
    dlsflh
        2
    dlsflh  
       2023-01-17 13:35:48 +08:00 via Android
    变成 exe ?
    dfkjgklfdjg
        3
    dfkjgklfdjg  
       2023-01-17 13:36:37 +08:00
    没办法,运行得有 js runtime 才行。如果只是简单的处理,可以直接写批处理吧,就不用 NodeJS 了。
    crysislinux
        4
    crysislinux  
       2023-01-17 13:37:47 +08:00 via Android
    所以 go 那么火呢。写个小工具编译部署起来委实便利
    channg
        5
    channg  
    OP
       2023-01-17 13:38:05 +08:00
    @nomagick #1 在看 pkg 谢谢
    JiuW
        6
    JiuW  
       2023-01-17 13:39:33 +08:00 via Android
    使用 pkg 打包
    wangtian2020
        7
    wangtian2020  
       2023-01-17 13:42:23 +08:00
    下限:用 electron 打包成 exe 安装包
    angrylid
        8
    angrylid  
       2023-01-17 13:48:38 +08:00 via Android
    把 NodeJS 核心部分和 index.js 和 start.cmd 打成一个压缩包就行了。

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

    所以写脚本的时候,为了让更多人用着方便,尽可能要选用大部分操作系统发行版会预装运行环境的那些语言。比如 shell/python/perl ...
    AyaseEri
        13
    AyaseEri  
       2023-01-17 14:22:19 +08:00
    写一个 js 运行时就行了
    Pipecraft
        14
    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
        15
    lzj724  
       2023-01-17 14:50:08 +08:00
    用 c#重构吧,写 wpf
    mmc
        16
    mmc  
       2023-01-17 16:46:50 +08:00
    一直在用 pkg
    yArna
        17
    yArna  
       2023-01-17 23:02:54 +08:00
    可以试试 CosyNode ( https://github.com/Moonvy/CosyNode) 把脚本打包成 exe


    和 vercel/pkg 之类的工具相比原理更简单,没有 Snapshot 机制(打包后与原始脚本有很多差异)
    zhuweiyou
        18
    zhuweiyou  
       2023-01-18 09:40:53 +08:00
    pkg
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5428 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:59 · PVG 14:59 · LAX 22:59 · JFK 01:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.