执行“npm install”时无法安装 npm 软件包,但可以使用“npm init xyz”

问题描述 投票:0回答:1

节点版本:16.20.2 NPM版本:8.19.4 NVM版本:0.39.7 操作系统:亚马逊Linux 2

当我尝试使用

npm init playwright@latest -- --ct
创建新的剧作家项目时,将创建包并创建 package.json 文件。它警告节点版本不受支持,但仍然运行完美。

当我尝试在其他地方使用相同的 package.json 但使用

npm install
时,它失败并存在说汇总版本错误,预期 0.21.4 但收到 0.18.4 (数字不准确,但是的,一个更高,另一个更高)较低)

为什么会发生这种情况?它带来了一个问题,因为使用 git 时,npm install 失败,我必须使用 npm init 重新创建整个项目。

node.js npm playwright nvm
1个回答
0
投票

这种差异可能是因为

package-lock.json
或之前缓存的模块包含与您的预期更新或安装冲突的版本。

为什么会出现这种情况?

  1. 缓存节点模块:

    • npm install
      使用现有的
      node_modules
      package-lock.json
    • 如果
      package-lock.json
      中的依赖项与本地环境存在版本冲突,则会出现错误。
  2. 项目初始化差异:

    • npm init playwright@latest
      每次都会设置一个新的项目环境,自动获取并解决正确的依赖关系。
    • 这意味着它会忽略以前的缓存或
      package-lock.json
      ,确保全新安装。
  3. 节点版本不兼容:

    • Playwright 和许多包都具有最适合特定 Node.js 版本的依赖项。
    • 您的
      npm init playwright@latest
      甚至警告 Node 版本不兼容,但仍然能够正常工作,因为它创建了一个全新的环境。

解决方案

1。清除缓存

首先,清除 npm 缓存以确保旧安装的残留物不存在。

npm cache clean --force

2。删除旧文件

删除

node_modules
文件夹和
package-lock.json
即可恢复干净。

rm -rf node_modules package-lock.json

如果您使用的是 Windows (PowerShell):

rm -r node_modules
rm package-lock.json

3.重新安装依赖项

运行

npm install
以重新安装全新的依赖项。

npm install

4。更新汇总(如果适用)

如果汇总版本问题仍然存在,请手动安装正确的版本:

npm install rollup@latest --save-dev

或者,如果您需要特定版本:

npm install [email protected] --save-dev

5。验证节点版本兼容性

检查您的 Node 版本并根据需要进行升级。

node -v
npm -v

如果您发现 Node 版本过时,请使用 NVM 进行升级:

nvm install 20  # Or whichever version you'd prefer
nvm use 20

然后,重新安装 npm:

npm install -g npm

6。清洁项目安装(推荐)

作为最后的手段,重新创建项目设置:

npm init playwright@latest -- --ct
© www.soinside.com 2019 - 2024. All rights reserved.