使用npm更新本地文件依赖项

18

我有一个项目,在我的 package.json 文件中存在本地文件依赖,如下所示:

"dependencies": {
    "dep_1": "file:../../dep_1"
  }
}

当我执行npm install命令时,它会被安装到node_modules文件夹中。但是如果我更改了dep_1,我该如何更新node_modules中的模块版本?

我尝试过执行npm update,但没有任何变化。

1个回答

18
如果您使用的是相对较新的npm版本(我使用的是2.14.2版本),则您可以在package.json中增加版本号,然后`npm update dep_1`应该会起作用。否则npm怎么知道需要更新什么东西呢?
注意:这只适用于版本高于以前安装过的版本。您需要清除缓存才能重置此行为。
但是,您可以通过再次运行`npm install`强制(并懒惰地)更新本地模块,例如:
npm install dep_1

因为它在您的本地计算机上,您不必玩弄版本号,所以它应该很快。

有关此问题的讨论的更多详细信息,请参阅npm官方存储库页面上的讨论:https://github.com/npm/npm/issues/7426


4
实际上,执行 npm install dep_1 并不起作用,因为 dep_1 不在 npm 存储库中。但是执行 npm install ../../dep_1 就可以完美地工作。 - Sean Lynch
@SeanLynch: 这里对我来说npm install dep_1是有效的。我的npm版本是2.14.2,我的行包含"dep_1": "file:../dep_1" - chriskelly
@SeanLynch:另外,你尝试过升级版本并运行npm update吗? - chriskelly
我正在使用npm版本2.11.3。我尝试进行版本升级,然后进行更新,但行为仍然相同。 - Sean Lynch
@SeanLynch:无论如何,如果我在本地开发,我可能会坚持使用npm install更新方法,因为您不必去弄清楚您的版本。另外,也许您应该将npm版本更新到更新的版本。对我来说,升级版本并使用npm update是有效的,更重要的是,它回答了问题。我会更新我的答案以指出它可能无法在较旧的npm版本上运行。 - chriskelly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接