NPM dist 安装包中包含的二进制可执行文件
Binary executable included in NPM dist installation package
是否可以在 NPM 包中包含二进制可执行文件?我在 macOS 上很难做到这一点。
我正在开发一个使用 SVN 的电子应用程序。使用 svn-spawn 包,如果它安装在机器上,我可以与 svn 通信。但是,我不想单独安装 SVN 和我的应用程序。
由于 SVN 作为单个可执行文件工作 - svn.exe 在 Windows 上或 svn 在 macOS 上,我可以在 node_modules/svn-spawn/lib/svn.js
中编辑以下块
var Client = function(options) {
this.option({
program: '<path_to_svn>/svn.exe'
}).option(options);
};
我打包后:
- 适用于 Windows(即使在卸载 svn 之后 - 这意味着 svn 成为应用程序的一部分)
- 当 svn 仍在目录中时在 macOS 上工作
- 删除 svn 后无法在 macOS 上运行
在 npm 安装中包含这样的可执行文件的正确方法是什么?
对于遇到相同问题的任何人 - 此步骤有帮助:
您可以通过更新 package.json
来复制文件
"build": {
"extraFiles": [
{
"from": "resources/${os}",
"to": "Resources/bin",
"filter": ["**/*"]
}
],
然后从您的脚本中引用此文件。
是否可以在 NPM 包中包含二进制可执行文件?我在 macOS 上很难做到这一点。
我正在开发一个使用 SVN 的电子应用程序。使用 svn-spawn 包,如果它安装在机器上,我可以与 svn 通信。但是,我不想单独安装 SVN 和我的应用程序。
由于 SVN 作为单个可执行文件工作 - svn.exe 在 Windows 上或 svn 在 macOS 上,我可以在 node_modules/svn-spawn/lib/svn.js
中编辑以下块var Client = function(options) {
this.option({
program: '<path_to_svn>/svn.exe'
}).option(options);
};
我打包后:
- 适用于 Windows(即使在卸载 svn 之后 - 这意味着 svn 成为应用程序的一部分)
- 当 svn 仍在目录中时在 macOS 上工作
- 删除 svn 后无法在 macOS 上运行
在 npm 安装中包含这样的可执行文件的正确方法是什么?
对于遇到相同问题的任何人 - 此步骤有帮助:
您可以通过更新 package.json
来复制文件 "build": {
"extraFiles": [
{
"from": "resources/${os}",
"to": "Resources/bin",
"filter": ["**/*"]
}
],
然后从您的脚本中引用此文件。