【问题标题】:How to use a non-npm node_module in meteor?如何在流星中使用非 npm node_module?
【发布时间】:2013-11-01 23:58:50
【问题描述】:

我刚刚分叉了一个节点模块并修复了它的一些问题。在我的 Meteor 项目中使用 Npm.depends 引用了原始版本。但现在我想改用我的分叉版本(直到原所有者接受我的拉取请求)。

这样做的好方法是什么?我真的不想将我的分叉版本发布到 npmjs.org 上。

是否可以使用 Npm.depends on git urls?

【问题讨论】:

  • 你可以用不同的名字上传到 npm

标签: javascript node.js meteor


【解决方案1】:

这是我想出的一个快速技巧:

我的自定义节点模块位于 MyProject/packages/my-package/my-node-module (你需要在本地 git clone 你的分叉节点模块)

在你的包的 main.js 文件中,你可以像这样使用 Npm.require 引用你的节点模块:

console.log(process.cwd());
// this will output something like "/home/user/projects/MyProject/.meteor/local/build/programs/server"
var myNodeModule=Npm.require("../../../../../packages/my-package/my-node-module");

我们使用父目录语法回到项目目录,然后引用我们节点模块的相对路径。

我们不需要 Npm.depends 使用这种技术,它不是很好,但它可以解决问题。

【讨论】:

  • 捆绑应用后这仍然有效吗?如果在未来版本中对 Meteor 项目结构进行更改以及何时更改,此解决方案很容易被破坏。
  • 如果我没记错的话,捆绑后它不会工作,但你仍然可以使用绝对路径,这更hacky但它​​可以很方便。
【解决方案2】:

您可以轻松地将其包装在一个智能包装中,无需破解。

当我遇到一个有用的废弃模块时,我遇到了同样的问题,其中有几个错误。我分叉了模块并将其包装在一个智能包中。示例:

Smart Package我的npm module的分支

【讨论】:

    猜你喜欢
    • 2017-01-12
    • 2016-01-21
    • 2014-08-02
    • 2016-12-03
    • 2017-07-09
    • 2014-08-18
    • 2014-03-04
    • 1970-01-01
    • 2014-01-11
    相关资源
    最近更新 更多