我已经创建了一个功能齐全的基本javaScript Node.js Express API应用程序,我想在Windows环境中作为可执行文件运行。我想这样做,所以我可以让客户能够在不事先公开我的源代码的情况下运行我的API。
目前我一直在使用pkg npm package,它允许我将node.js应用程序打包成一个可执行文件,其中包含运行应用程序所需的一切,包括节点和我的捆绑源代码。
我的可执行文件运行但我的POST路由中断了以下错误:
"name": "RequestError",
"message": "Error: form-data: File or directory 'C:\\**\\myapp-api\\uploads\\1553103249524_test.wav' was not included into executable at compilation stage. Please recompile adding it as asset or script.",
"cause": {
"errno": -4058,
"code": "ENOENT",
"path": "C:\\snapshot\\myapp-api\\uploads\\test.wav",
"pkg": true
},
"error": {
"errno": -4058,
"code": "ENOENT",
"path": "C:\\snapshot\\myapp-api\\uploads\\1553103249524_test.wav",
"pkg": true
},
我的POST允许客户端使用multer.js将多部分表单中的文件上传到另一个将返回一些元数据的外部API。 pkg.js似乎没有办法发现捆绑可执行文件后包含的文件。
我的配置中有什么可以包含我上传的文件吗?是否有其他人使用其他实用程序或进程来创建node.js的可执行文件表示可以更好地处理我遇到的问题的API?
任何指导都会很棒。
尝试在package.json文件中的“assets”下添加文件。
pkg网站https://www.npmjs.com/package/pkg#config上的配置段落声明:
因此,您必须在package.json文件的pkg属性中手动指定文件 - 脚本和资产。
"pkg": {
"scripts": "build/**/*.js",
"assets": "views/**/*"
}
您还可以指定globs数组:
"assets": [ "assets/**/*", "images/**/*" ]
请务必致电pkg package.json或pkg。使用脚本和资产条目。