【问题标题】:Forking and changing an NPM package分叉和更改 NPM 包
【发布时间】:2017-07-20 08:43:30
【问题描述】:

我一直在为 angular-4 使用 NPM,它支持拖放对象 (ng2-drag-drop)。我发现了一个缺失的功能并决定将它添加到包中。

我所做的是分叉原始项目并添加我的更改。在提交/推送到我的 git 之后,我使用以下命令安装我的 NPM:

npm install https://github.com/..... --save

NPM 安装成功,但是在查看我的 node_modules 时,我发现源文件丢失了,我只有根目录,包括 package.json 和一些其他文件。缺少任何源文件。

然后我尝试直接从作者 git 安装 NPM,而不是运行:

npm install ng2-drag-drop --save

我用过

npm install https://github.com/ObaidUrRehman/ng2-drag-drop.git --save

我的叉子也有同样的问题。

为什么作者git和命名包的安装不一样?它不是从同一位置获取文件吗?如果没有,我应该怎么做才能让它工作?

【问题讨论】:

  • 你试过npm install https://github.com/yourforkedrepo/ng2-drag-drop.git --save
  • 更新的模块没有反映什么错误?你能检查一下你在 package.json 中的依赖吗
  • @RahulSingh 你是什么意思?直接使用 git repo 时,整个模块无法正常工作。来源不存在。
  • 你可以尝试 npm cache clean 然后从依赖项中删除它然后重新安装
  • 清理缓存不起作用。

标签: npm npm-install


【解决方案1】:

看不到src文件夹的原因是

如果你看到 git repo 你会发现两个文件 gitignore & npmignore

在该 npm 忽略文件中,您会发现 src 已被忽略,以防止在运行 npm 命令时将其添加到包中。

将文件保存在您的包之外

使用 .npmignore 文件将内容保存在您的包之外。如果没有 .npmignore 文件,但是有 .gitignore 文件,那么 npm 会忽略 .gitignore 文件匹配的东西。如果你想包括 .gitignore 文件排除的内容,您可以创建一个 空 .npmignore 文件以覆盖它。像 git 一样,npm 寻找 包的所有子目录中的 .npmignore 和 .gitignore 文件, 不仅是根目录。

您需要覆盖这些设置,以便在执行 npm install 时能够在节点模块中获取 src 内容

【讨论】:

  • 为什么有人想忽略他们的源文件?在这个特定的项目中,这是一种常见的做法还是只是一件奇怪的事情?
  • @Nuno_147 这对我来说很奇怪,但我只是在浏览一个我已经覆盖并弄清楚 npm 忽略的包
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
相关资源
最近更新 更多