当前位置: 首页 > 知识库问答 >
问题:

安装新软件包时npm强制解决方案不起作用

龚寂弦
2023-03-14

我正在使用包的脚本部分。json强制解析:

"preinstall": "npx npm-force-resolutions"

在决议部分,我已经输入了指定版本的gry-fs

"resolutions": {
  "graceful-fs": "^4.2.4",
},

当我运行npm i时,一切都已正确安装,设置的版本将被考虑在内。但后来,当我安装一个附加模块时,例如,npm I random package,我设置的版本被扔掉了,我最终得到的是-fs@1.2.3和某些依赖项中的其他低版本。

如果我清除node_modules文件夹并再次运行npm I,一切都会恢复正常。

我还试着把分辨率设置得更具体,比如

"resolutions": {
  "glob/**/graceful-fs": "^4.2.4",
},

但这没用。

我也尝试过:

  • 将模块添加为依赖项、DevDependence或PeerDependence

但是没有运气。

我错过了什么?

共有3个答案

程俊健
2023-03-14

Hi@NthDegree对我来说唯一有效的方法是首先运行正常的npm安装,然后添加包锁。json文件到git。在添加“preinstall”:“npx npm force resolutions”之后,它总是将依赖项解析更新到所提到的版本。

我不确定添加包是否会锁定。git的json文件是好是坏,但通过使用此方法,CI/CD管道也可以工作。

丁晋
2023-03-14

最好的方法是将预安装脚本更改为:

"preinstall": "([ ! -f package-lock.json ] && npm install --package-lock-only --ignore-scripts --no-audit); npx npm-force-resolutions"

这只会在初始package-lock.json还不存在时运行npm安装来创建初始package-lock.json。
这比总是运行两者(npm npx)要快得多。

邵轶
2023-03-14

对我来说,实现自动化的最佳解决方案是修改预安装脚本,如上所述:

"预装":"npm安装--包锁--仅--忽略--脚本

 类似资料:
  • 本文向大家介绍Linux 强制安装 rpm 包的解决方法,包括了Linux 强制安装 rpm 包的解决方法的使用技巧和注意事项,需要的朋友参考一下 Linux 正常安装 rpm 的命令是: 重复安装时需加属性: 软件包重复安装将会失败,若仍需要安装必须加 --replacepkgs 属性 软件包的某个文件已在安装其他软件包时安装过,则安装将会失败,若仍需要安装必须加 --replacefiles 

  • 问题内容: 我正在使用脱机网络,并且想使用npm安装angular-cli。我有一个angular- cli的zip文件,并使用最新的节点和npm版本。我正在使用命令:从文件夹中安装angular- cli。但是我不断收到此错误消息,告诉我我没有互联网连接(可以)。那么,如何在离线时使用从Github下载的zip来安装angular-cli? 谢谢你的帮助。 问题答案: 您只需将软件包及其所有依赖

  • 我想在Eclipse Juno中安装svn,但我发现了几件事情... 我无法访问Market Place,弹出窗口显示错误: java出现意外异常。朗。反思。调用目标异常 但出现了另一个错误。 我应该做些什么来解决这个问题?我需要帮助和svn在我的日食!

  • 问题内容: 有人可以告诉我在哪里可以找到使用我安装的Node.js模块 吗? 问题答案: 全球图书馆 您可以运行以查看安装了哪些全局库以及它们的位置。使用用于显示人的路截断输出。如果您只想显示主软件包而不显示与其一起安装的子软件包(可以使用),则可以使用- 将显示所有软件包并仅获取全局安装的软件包,只需添加-g ie即可。 在Unix系统上,它们通常放在全局中或在全局中安装。如果将环境变量设置为此

  • 问题内容: 我正在尝试安装npm软件包(node-xmpp-server),但安装失败。以前,当我尝试安装全局安装而不是本地安装的软件包时,现在却根本没有安装。 请帮帮我。 npm install node-xmpp-server 错误是:npm ERR!errno -4048 npm错误!Windows_NT 6.3.9600 npm错误!argv“ c:\ Program Files \ no

  • 下面的代码是我解决这个问题的尝试。我使用了基于1的索引。我无法找出错误。我试着调试代码,但没有帮助。我已经被困了两天了。请帮忙。