【问题标题】:Node.js - Modify node_module contentNode.js - 修改 node_module 内容
【发布时间】:2018-09-03 20:10:14
【问题描述】:

这是交易,我已经下载了一个节点模块。但是我不得不修改库的代码。

现在我想把我的代码上传到heroku,但是heroku会安装package.json文件的依赖,库的代码不变。

那么有没有办法将该模块放在 node_modules 文件夹之外?

该库的唯一引用位于package.json 文件中。 而在程序中,库是由一个文件访问的。

var containerVar = require('modified_module');

【问题讨论】:

  • 为什么不手动下载并将其移出node_modules?并用代码提交
  • 我的代码将如何调用它?我的意思是 require 命令
  • var containerVar = require('path/to/modified/module')。如果您不想使用相对路径,请在此处查看gist.github.com/branneman/8048520
  • @user1584421 看看这个。我几天前给出的答案。 link

标签: javascript node.js heroku


【解决方案1】:

您可以在 Github 上托管您修改后的(本地)包并从那里安装该包。

例如,如果我修改了 redis 模块,我可以将修改后的包上传到 Github,并告诉我的应用从 Github 安装,而不是从 NPM 安装。

我的 package.json 文件的依赖部分如下所示

"dependencies": {
    "moment": "^2.22.2",
    "redis-modified": "github:username/redis-modified",
}

您可以像使用任何常规模块一样使用它

var redis = require("redis-modified");

总之,您将创建一个新版本的包并托管它。

【讨论】:

    【解决方案2】:

    更好的方法是编写自己的模块。因此,获取您需要的模块,按照您已经完成的方式更改其内容,并在其 package.json 中为其指定新的自定义名称。你甚至可以在 npm 上发布它。你只需要注册 npm。比您可以调用已发布的项目 package.json 模块并解决您的问题。

    【讨论】:

    • 把它作为我自己的包发布不是不道德吗?我的意思是我只对现有包做了一些小的改动,以满足我的需要。
    • 您可以在 package.json 中添加描述它是一个特殊/个人需要的模块。将 url 添加到原始模块的 repo 中,并说明您更改了它的内容和原因。
    猜你喜欢
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 2015-12-21
    • 2018-07-05
    • 2020-12-08
    • 2010-10-26
    相关资源
    最近更新 更多