sologgfun
V2EX  ›  问与答

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

  •  
  •   sologgfun · Apr 7, 2021 · 1546 views
    This topic created in 1871 days ago, the information mentioned may be changed or developed.
    虽然我知道 pkg 可以打包 js 为二进制,但是命令行文件本身运行在 bin 目录下,而且文件头是#!/usr/bin/env node

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

    #!/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
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4239 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 10:09 · PVG 18:09 · LAX 03:09 · JFK 06:09
    ♥ Do have faith in what you're doing.