pkg使用:
// 简单的json配置,这里是win开发环境下的,同事mac说不行,没尝试
{
"bin": "./compare.js",
"pkg": {
"targets": [
"node14-win-x64"
],
"assets": [
"node_modules/axios",
"node_modules/fs",
"node_modules/fs-constants",
"node_modules/fs-extra",
"node_modules/express",
"node_modules/multer",
"node_modules/multistream"
]
},
"dependencies": {
"axios": "^0.27.2",
"express": "^4.18.2",
"fs": "0.0.1-security",
"multer": "^1.4.5-lts.1"
}
}
这个建议先创建这个文件再处理其他的,因为后期如果使用的三方包有问题要更换的话,这个文件会自动变动
assets里的内容,是为了防止打包好的文件运行时,报错找不到文件,所以最好自己手动指定一下require用到的包,参考的文章说,如果自己手动引入还是不行的话,建议整个引入node_modules
另外还有,axios新的版本(2023.9.19)会导致报错,检索建议是换到低版本,建议版本为:0.27.2,问题参考下面链接:
https://github.com/vercel/pkg/issues/1822
另外一个很重要的问题,打包的时候,有时候会非常慢导致直接超时或者直接断开,解决方法如下:
先下载pkg-fetch
npm install pkg-fetch
到这个链接里找自己需要的包下载:
https://github.com/zeit/pkg-fetch/releases
这里以v9.2.1为例:
下载的包叫node-v9.2.1-linux-x64
改名为:
fetched-v9.2.1-linux-x64
放到
~/.pkg-cache/v2.5/目录下:
注意,这个v2.5以及自己下载的版本需要看自己的日志内容:
日志会打印以下信息:
{“tag”:“v2.5”,“name”:“uploaded-v2.5-node-v8.9.0-linux-x64”}