如何在流星中使用非 npm node_module

How to use a non-npm node_module in meteor?

本文关键字:npm node module 流星      更新时间:2023-09-26

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

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

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

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

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

在包的主.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.depend使用这种技术,它不是很好,但它可以解决问题。

您可以轻松地将其包装在智能包中,无需黑客攻击。

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

智能打包我的 npm 模块的分支