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

2021-04-07 17:59:16 +08:00
 sologgfun
虽然我知道 pkg 可以打包 js 为二进制,但是命令行文件本身运行在 bin 目录下,而且文件头是#!/usr/bin/env node

直接打包入口文件放在 bin 目录下运行会报错 exec format error: xxx
1125 次点击
所在节点    问与答
4 条回复
Yourshell
2021-04-07 19:33:10 +08:00
lscho
2021-04-07 21:29:28 +08:00
人生苦短,我用 golang
Jirajine
2021-04-07 22:15:12 +08:00
先用 https://deno.land/x/nodedeno 转成 deno,然后用 deno compile 打包成单可执行文件(几十 M )。
sologgfun
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

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

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

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

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

© 2021 V2EX