npm 8.5.5:@npmcli\arborist 中未执行的令牌

TmT*_*ron 4 npm nvm npm-cli nvm-windows

将 npm(通过 nvm)升级到 8.5.5 后,npm 命令不再起作用:

例如npm --verbose ls webpack失败:

npm verb stack C:\Users\marti\AppData\Roaming\nvm\v16.15.0\node_modules\npm\node_modules\@npmcli\arborist:1
npm verb stack ../../workspaces/arborist
npm verb stack ^
npm verb stack 
npm verb stack SyntaxError: Unexpected token '.'
npm verb stack     at Object.compileFunction (node:vm:352:18)
npm verb stack     at wrapSafe (node:internal/modules/cjs/loader:1033:15)
npm verb stack     at Module._compile (node:internal/modules/cjs/loader:1069:27)
npm verb stack     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
npm verb stack     at Module.load (node:internal/modules/cjs/loader:981:32)
npm verb stack     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
npm verb stack     at Module.require (node:internal/modules/cjs/loader:1005:19)
npm verb stack     at require (node:internal/modules/cjs/helpers:102:18)
npm verb stack     at Object.<anonymous> (C:\Users\marti\AppData\Roaming\nvm\v16.15.0\node_modules\npm\lib\commands\ls.js:7:18)
npm verb stack     at Module._compile (node:internal/modules/cjs/loader:1105:14)
npm verb cwd D:\dev\xxx
npm verb Windows_NT 10.0.19043
npm verb argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "--verbose" "ls" "webpack"
npm verb node v16.15.0
npm verb npm  v8.5.5
npm ERR! Unexpected token '.'
Run Code Online (Sandbox Code Playgroud)

注意:当我使用 nvm 并切换回节点 16.12(npm 版本 8.1.0)时,它工作正常

细节

错误引用的文件
C:\Users\xxx\AppData\Roaming\nvm\v16.15.0\node_modules\npm\node_modules\@npmcli\arborist仅包含这个(我猜这不是有效的js):

../../workspaces/arborist
Run Code Online (Sandbox Code Playgroud)

我尝试过的(但没有成功)

  • 重新启动我的电脑
  • 通过 nvm 卸载节点 16.15 并重新安装

解决方法

  • 删除文件C:\Users\xxx\AppData\Roaming\nvm\v16.15.0\node_modules\npm\node_modules\@npmcli\arborist
  • 然后将 aborist 目录从旧节点版本复制到该目录:例如C:\Users\xxx\AppData\Roaming\nvm\v16.12.0\node_modules\npm\node_modules\@npmcli\arborist\

有什么想法我做错了吗?或者这只是 npm 中的一个错误8.5.5

TmT*_*ron 5

这对我有用:

  • 更新nvm至版本1.1.9(旧安装版本为1.1.7
  • 然后重新安装节点版本16.15.0(现在aborist是一个目录)并且命令按预期工作