即使版本号相同,如何强制npm重新安装单个包?

Kev*_*ica 6 npm

在我的Node.js项目中,我依赖于另一个本地项目.通常情况下,我需要对依赖项进行一些小改动,看看它如何影响我的主项目.为了做到这一点,我必须使用重新安装我的依赖npm.

我可以npm update尝试更新我的依赖项,但这似乎只有在依赖项上的版本号已更改时才会起作用.我不想每次更改一行代码时都要更改依赖项的版本号,以便在开发过程中进行实验性更改.

我可以rm -rf node_modules/; npm install确保获得所有依赖项的最新版本.下载所有非本地依赖项需要几分钟,打破了我的思路.

有没有办法强制npm重新安装单个依赖项,即使该依赖项的版本号没有更改?

car*_*ant 6

运行时npm install,它将安装所有缺少的依赖项,因此可以将其与uninstall如下所示结合:

npm uninstall some_module; npm install
Run Code Online (Sandbox Code Playgroud)

使用npm 5时,将从中删除已卸载的模块package.json,因此您应该使用:

npm uninstall some_module; npm install some_module
Run Code Online (Sandbox Code Playgroud)


Clá*_*lva 5

在 npm v 6.14 上:

npm install module_name --force --no-save
Run Code Online (Sandbox Code Playgroud)

您会收到一条消息,说明:

npm WARN using --force I sure hope you know what you are doing.

然后它继续卸载并重新安装软件包。

注意:如果您不指定该--no-save选项,npmpackage.json会将包版本更新为与现有 SemVer 规则兼容的最高版本。
如果您不希望 npm 在 上更新包的版本package.json,请保留该--no-save选项。


Leo*_*ele 5

不是最好的答案,但仅供参考,您可以运行

npm ci
Run Code Online (Sandbox Code Playgroud)

它与 相同npm install,但它将删除现有node_modules文件夹(如果有),并对所有软件包进行全新安装。如果其中的文件node_modules由于某种原因被更改并且您想要将它们恢复到原始状态,这非常有用。