【发布时间】:2018-06-29 17:40:38
【问题描述】:
是否可以在 NPM 包中包含二进制可执行文件?我在 macOS 上很难做到这一点。
我正在开发一个使用 SVN 的电子应用程序。使用 svn-spawn 包我可以与机器上安装的 svn 通信。但是,我不想单独安装 SVN 和我的应用程序。
由于 SVN 作为单个可执行文件工作 - Windows 上的 svn.exe 或 macOS 上的 svn,我可以在 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 安装中包含此类可执行文件的正确方法是什么?
【问题讨论】:
-
很多 gulp 包都附带二进制文件。例如,您可以查看jpegtran-bin。如果您查看维护者的个人资料,您会发现更多包含二进制文件的软件包。
-
这基本上是在 gitHub 上而不是本地文件系统上存储二进制文件吗?