本文共 2110 字,大约阅读时间需要 7 分钟。
准备打包
在package.json文件中添加关于pkg打包文件的一些文件夹包含(实际按照项目而定):
"./node_modules/**/*.js"注意不包含的话我出了问题,但是感觉本不应该包含这个吧
"pkg":{"assets":["api/**/*","runtime/**/*","./node_modules/**/*.js"] }"bin":"main.js"
打包命令为:
pkg . -t node6-win-x86 -o myapp
问题处理:
1.
D:\FUXA\FUXA-master\server>pkg . -t node6-win-x86 -o myapp> pkg@4.4.9> Fetching base Node.js binaries to PKG_CACHE_PATH fetched-v6.17.1-win-x86 [ ] 0%> Error! 404 Not Found https://github.com/zeit/pkg-fetch/releases/download/v2.6/uploaded-v2.6-node-v6.17.1-win-x86> Asset not found by direct link: {"tag":"v2.6","name":"uploaded-v2.6-node-v6.17.1-win-x86"}> Not found in GitHub releases: {"tag":"v2.6","name":"uploaded-v2.6-node-v6.17.1-win-x86"}> Building base binary from source: built-v6.17.1-win-x86> Cloning Node.js repository from GitHub... git [ ] 0%> Error! Error: spawn git ENOENT at Process.ChildProcess._handle.onexit (internal/child_process.js:230:19) at onErrorNT (internal/child_process.js:407:16)at process._tickCallback (internal/process/next_tick.js:63:19)
处理方案:
狸猫换太子之法处理。
找到下载失败的缓存路径,默认为C:\Users\Administrator\.pkg-cache\v2.X
需要手动下载一个二进制文件:
网络路径为https://github.com/vercel/pkg-fetch/releases
这里找一个和node版本相近的如个人使用的为nodeV10.8就下载了node-10.17-win-X86的二进制包,然后将源路径的失败的缓存文件删除,替换为报错的文件名称,本例子为fetched-v6.17.1-win-x86。
2.
> pkg@4.4.9
> Warning Cannot resolve 'path.join(__dirname, 'package.json')'
D:\FUXA\FUXA-master\server\fuxa.js
Dynamic require may fail at run time, because the requested file
is unknown at compilation time and not included into executable.
Use a string literal as an argument for 'require', or leave it
as is and specify the resolved file name in 'scripts' option.
处理方案:
将固定的一些js文件写入到package.json中:
"pkg":{
"assets":["./_appdata/*.js","./*.js","./api/*.js","./api/**/*.js","./runtime/**/*.js","./runtime/**/**/*.js","./runtime/*.js","./node_modules/**/*.js"]
}
在当地目录已经成功打包出一个myapp.exe的文件。
运行出错:
3.需要到D:/snapshot中获取配置文件。__dirname为该路径。
处理方案:
这里可能需要将__dirname改为本地路径”./”???
4.反馈 Get / 404
处理方案:
这里也是一个原因,去找静态的html文件的时候没有在本地寻找,打印了一下又去D:/snapshot中寻找,改为了”./”之后可以正常使用。
转载地址:https://islet.blog.csdn.net/article/details/109692670 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!