【问题标题】:Distribution of node js modulenode js模块的分布
【发布时间】:2012-11-14 04:48:46
【问题描述】:

我使用了本页中解释的步骤:http://nodejs.org/api/addons.html 并使用 node-gyp 工具成功创建了 addon.node 文件。它工作正常,它是一个 c++ 静态库的包装器。

现在我想分发这个,我使用以下方法创建了 package.json 文件:

npm 初始化

并使用“npm install .-g”对其进行测试,但它会尝试重新编译模块,这将很难实现,因为它需要我嵌入到 .node 文件中的库,是否可以分发我已经在我的系统中编译的 .node 文件?

如何将编译后的 .node 文件包含到 npm 包中并将其上传到 npm 注册表。我确信我只是一步之遥,但我不知道从哪里开始。

我阅读了有关依赖项的信息,但它似乎适合您的模块依赖于其他模块,而不是您自己的 .node 文件。

感谢您的帮助。

【问题讨论】:

  • 答案当然是简单的谷歌...
  • 实际上,我这样做了 3 个小时,现在我转向社区,因为在我使用 google 找到的任何页面中都没有解释。我可以为你列出我读过的很长的网站列表,但所有这些网站都有相同的示例,这是在 npm 文档中找到的那个。

标签: node.js package npm


【解决方案1】:

好的,我终于完成了我想要实现的目标,以下是其他人需要的选项:

  1. 为避免编译,您可以创建一个新文件夹并将 package.json 以及 .node 文件复制到其中,我没有找到这个,只是尝试过,它成功了。
  2. 提供所需的库以允许用户自己编译。

虽然第一个运行良好,但我需要为 windows、linux、mac 等创建一个包。这看起来很奇怪:“如果你在 linux 中使用:npm install xxx-linux”,所以我决定调整我的库以允许用户编译模块。

为此,我创建了一个“client-dev”安装程序,其中预编译了所需的库,只要包含所需的头文件,然后使用预安装的库和头文件创建要编译的节点模块。我需要在我的网站中添加一个帮助来说明,为了安装模块,用户需要首先使用 apt-get、windows installer 或 mac pkg 安装依赖项。

虽然这对我有用,但我不知道从长远来看这是否可以维护,但我没有找到更好的方法来做到这一点。 (最终启发我的目标的唯一链接是一个说:“如果您要使用带有预编译库的节点模块,您将做噩梦”,无论如何...我更喜欢这样做,而不是从头开始在节点 js 中进行完整实现并维护java、c#、nodejs、php等版本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 2015-10-03
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多