报错:nvm\v20.5.0\node_modules\npm\lib\es6\validate-engines.js:31 throw err

513 阅读1分钟

报错描述

使用nvm控制node版本(20.5.0)

下载安装完成后node -v不报错,npm -v报错

C:\Users\Admin>npm -v
C:\Users\Admin\AppData\Roaming\nvm\v20.5.0\node_modules\npm\lib\es6\validate-engines.js:31
    throw err
    ^

Error: Cannot find module '@npmcli/config'
Require stack:
- C:\Users\Admin\AppData\Roaming\nvm\v20.5.0\node_modules\npm\lib\npm.js
- C:\Users\Admin\AppData\Roaming\nvm\v20.5.0\node_modules\npm\lib\cli-entry.js
- C:\Users\Admin\AppData\Roaming\nvm\v20.5.0\node_modules\npm\lib\cli.js
- C:\Users\Admin\AppData\Roaming\nvm\v20.5.0\node_modules\npm\bin\npm-cli.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15)
    at Module._load (node:internal/modules/cjs/loader:901:27)
    at Module.require (node:internal/modules/cjs/loader:1115:19)
    at require (node:internal/modules/helpers:119:18)
    at Object.<anonymous> (C:\Users\Admin\AppData\Roaming\nvm\v20.5.0\node_modules\npm\lib\npm.js:2:16)
    at Module._compile (node:internal/modules/cjs/loader:1233:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12)
    at Module.require (node:internal/modules/cjs/loader:1115:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'C:\\Users\\Admin\\AppData\\Roaming\\nvm\\v20.5.0\\node_modules\\npm\\lib\\npm.js',
    'C:\\Users\\Admin\\AppData\\Roaming\\nvm\\v20.5.0\\node_modules\\npm\\lib\\cli-entry.js',
    'C:\\Users\\Admin\\AppData\\Roaming\\nvm\\v20.5.0\\node_modules\\npm\\lib\\cli.js',
    'C:\\Users\\Admin\\AppData\\Roaming\\nvm\\v20.5.0\\node_modules\\npm\\bin\\npm-cli.js'
  ]
}

npm i也报错

npm i
npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ npm i
+ ~~~
    + CategoryInfo          : ObjectNotFound: (npm:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

解决

  1. 降低node版本,我是降低到16.0.0就解决了(node -v、npm -v、 npm i全部正常)
  2. 网上还看到更新nvm版本到最新的。如果第一个方法没用或者不想降低node版本的可以试一下第二个方法。我是第一个方法就可以了。

最后

感觉nvm坑有点多...