【问题标题】:Binary executable included in NPM dist installation packageNPM dist 安装包中包含的二进制可执行文件
【发布时间】: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 上而不是本地文件系统上存储二进制文件吗?

标签: node.js svn npm


【解决方案1】:

对于任何有同样问题的人 - 这个踏板有助于: bundling precompiled binary into electron app

您可以通过更新 package.json 来复制文件

  "build": {
    "extraFiles": [
      {
        "from": "resources/${os}",
        "to": "Resources/bin",
        "filter": ["**/*"]
      }
    ],

然后从你的脚本中引用这个文件。

【讨论】:

    猜你喜欢
    • 2013-08-26
    • 2015-07-20
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多