首页 > 解决方案 > npm 错误!无法读取未定义的属性“0”

问题描述

λ npm i
npm ERR! Cannot read property '0' of undefined

我检查了所有类似的问题,例如这个问题以及更多问题。到目前为止,我已经尝试过:

  1. 删除node_modules文件夹package-lock.json,然后npm i
  2. 在步骤 1 中重复删除文件夹和文件 + 清除缓存npm cache clear --force
  3. nvm uninstall 10.13.0, 重新安装版本
  4. 卸载 nvm 并重新安装 nvm

在这期间,我重新启动了我的电脑几次。由于我正在处理公司项目,因此无法降级我的 Node 版本。

这是我的 NPM 日志:

3782 silly saveTree `-- websocket@1.0.29 3783 verbose stack TypeError:
 Cannot read property '0' of undefined 3783 verbose stack     at
 rmStuff (C:\tools\nvm\v10.13.0\node_modules\npm\lib\unbuild.js:61:24)
 3783 verbose stack     at tryCatcher
 (C:\tools\nvm\v10.13.0\node_modules\npm\node_modules\bluebird\js\release\util.js:16:23)
 3783 verbose stack     at ret (eval at makeNodePromisifiedEval
 (C:\tools\nvm\v10.13.0\node_modules\npm\node_modules\bluebird\js\release\promisify.js:184:12),
 <anonymous>:13:39) 3783 verbose stack     at lifecycle.then.then
 (C:\tools\nvm\v10.13.0\node_modules\npm\lib\install\action\unbuild.js:12:12)
 3783 verbose stack     at tryCatcher
 (C:\tools\nvm\v10.13.0\node_modules\npm\node_modules\bluebird\js\release\util.js:16:23)
 3783 verbose stack     at Promise._settlePromiseFromHandler
 (C:\tools\nvm\v10.13.0\node_modules\npm\node_modules\bluebird\js\release\promise.js:512:31)
 3783 verbose stack     at Promise._settlePromise
 (C:\tools\nvm\v10.13.0\node_modules\npm\node_modules\bluebird\js\release\promise.js:569:18)
 3783 verbose stack     at Promise._settlePromise0
 (C:\tools\nvm\v10.13.0\node_modules\npm\node_modules\bluebird\js\release\promise.js:614:10)
 3783 verbose stack     at Promise._settlePromises
 (C:\tools\nvm\v10.13.0\node_modules\npm\node_modules\bluebird\js\release\promise.js:693:18)
 3783 verbose stack     at Promise._fulfill
 (C:\tools\nvm\v10.13.0\node_modules\npm\node_modules\bluebird\js\release\promise.js:638:18)
 3783 verbose stack     at
 C:\tools\nvm\v10.13.0\node_modules\npm\node_modules\bluebird\js\release\nodeback.js:42:21
 3784 verbose cwd C:\src\agl-bot-alfie\botkit 3785 verbose Windows_NT
10.0.17134 3786 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "i"
 3787 verbose node v10.13.0 3788 verbose npm  v6.4.1 3789 error Cannot
 read property '0' of undefined 3790 verbose exit [ 1, true ]

标签: node.jsnpmnvm

解决方案


使用正确版本的 npm 和 node。您可以使用nvm https://github.com/nvm-sh/nvm

检查 package.json 值。例如:

"engines": {
  "node": "~6.17.1",
  "npm": ">=5.0.0"
}

推荐阅读