V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sologgfun
V2EX  ›  问与答

请教一下 nodejs 的命令行工具怎么打包成二进制阿?

  •  
  •   sologgfun · 2021-04-07 17:59:16 +08:00 · 988 次点击
    这是一个创建于 1112 天前的主题,其中的信息可能已经有所发展或是发生改变。
    虽然我知道 pkg 可以打包 js 为二进制,但是命令行文件本身运行在 bin 目录下,而且文件头是#!/usr/bin/env node

    直接打包入口文件放在 bin 目录下运行会报错 exec format error: xxx
    4 条回复    2021-04-13 12:30:32 +08:00
    Yourshell
        1
    Yourshell  
       2021-04-07 19:33:10 +08:00
    lscho
        2
    lscho  
       2021-04-07 21:29:28 +08:00 via iPhone
    人生苦短,我用 golang
    Jirajine
        3
    Jirajine  
       2021-04-07 22:15:12 +08:00 via Android
    先用 https://deno.land/x/nodedeno 转成 deno,然后用 deno compile 打包成单可执行文件(几十 M )。
    sologgfun
        4
    sologgfun  
    OP
       2021-04-13 12:30:32 +08:00
    问题已经解决了,之前是因为我打包的平台错了 放上我的打包脚本给需要的人

    #!/bin/bash
    set -e

    PKG_VERSION=`node -p "require('./package').version"`

    ## package to binary
    pkg -t node12-linux-x64,node12-macos-x64,node12-win-x64 --out-path output .

    ## rename and zip output files
    cd output
    for f in file-*;
    do
    filename=file-v${PKG_VERSION}${f##*file}
    mv $f $filename
    zip $filename.zip $filename
    rm $filename
    done
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3302 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:50 · PVG 21:50 · LAX 06:50 · JFK 09:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.