我已经创建了一个功能齐全、相当基本的 javaScript Node.js Express API 应用程序,我希望将其作为 Windows 环境中的可执行文件运行。我想这样做,这样我就可以让客户能够在本地运行我的 API,而无需向他们公开我的源代码。
目前我一直在使用pkg npm package它允许我将我的node.js应用程序打包成一个可执行文件,其中包含运行该应用程序所需的所有内容,包括 Node 和我捆绑的源代码。
我的可执行文件运行,但我的 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
},
My POST 允许客户端使用 multer.js 以多部分形式上传文件到另一个将返回一些元数据的外部 API。 pkg.js 似乎无法发现捆绑可执行文件后包含的文件。
我可以在配置中做些什么来包含我上传的文件吗?其他人是否使用其他一些实用程序或流程来创建其 Node.js Express API 的可执行文件,以更好地处理我遇到的问题?
任何指导都会很棒。
最佳答案
尝试将您的文件添加到 package.json 文件中的“assets”下。
pkg网站上的配置段落https://www.npmjs.com/package/pkg#config状态:
So you must specify the files - scripts and assets - manually in pkg property of your package.json file.
"pkg": {
"scripts": "build/**/*.js",
"assets": "views/**/*"
}
You may also specify arrays of globs:
"assets": [ "assets/**/*", "images/**/*" ]
Just be sure to call pkg package.json or pkg . to make use of scripts and assets entries.
关于javascript - 如何创建 Express api 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55267639/