【问题标题】:Cannot read property 'resolve' of undefined when using npm to install a package使用 npm 安装包时无法读取未定义的属性“解析”
【发布时间】:2019-11-05 07:28:32
【问题描述】:

我无法使用 npm 在我的 Windows 10 机器上执行任何操作。我总是得到:npm ERR!无法读取未定义的属性“解析”。

我正在使用 VSCode。

npm install npm -g 

给我的信息和“npm i”一样。我已经卸载了 Node 并重新安装了两次,但它没有帮助。我在我唯一的开发目录中删除了 node-modules 目录。我没有其他想法。

这就是现在完整的日志的样子:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'i' ]
2 info using npm@6.9.0
3 info using node@v10.16.0
4 verbose npm-session c94eba96e7c1121e
5 silly install runPreinstallTopLevelLifecycles
6 silly preinstall wordgame@1.0.0
7 info lifecycle wordgame@1.0.0~preinstall: wordgame@1.0.0
8 silly install loadCurrentTree
9 silly install readLocalPackageData
10 timing stage:loadCurrentTree Completed in 13ms
11 silly install loadIdealTree
12 silly install cloneCurrentTreeToIdealTree
13 timing stage:loadIdealTree:cloneCurrentTree Completed in 0ms
14 silly install loadShrinkwrap
15 timing stage:loadIdealTree:loadShrinkwrap Completed in 76ms
16 silly install loadAllDepsIntoIdealTree
17 silly fetchPackageMetaData error for typescript@^3.5.1 Cannot read property 'resolve' of undefined
18 silly fetchPackageMetaData error for typescript@^3.5.1 Cannot read property 'resolve' of undefined
19 timing stage:rollbackFailedOptional Completed in 0ms
20 timing stage:runTopLevelLifecycles Completed in 223ms
21 silly saveTree wordgame@1.0.0
21 silly saveTree +-- @types/express@4.16.1
21 silly saveTree | +-- @types/body-parser@1.17.0
21 silly saveTree | | +-- @types/connect@3.4.32
21 silly saveTree | | | `-- @types/node@10.12.18
21 silly saveTree | | `-- @types/node@10.12.18
21 silly saveTree | +-- @types/express-serve-static-core@4.16.1
21 silly saveTree | | `-- @types/range-parser@1.2.3
21 silly saveTree | `-- @types/serve-static@1.13.2
21 silly saveTree |   `-- @types/mime@2.0.0
21 silly saveTree +-- @types/node@10.12.18
21 silly saveTree +-- @types/seedrandom@2.4.27
21 silly saveTree +-- @types/socket.io@2.1.2
21 silly saveTree +-- @types/ws@6.0.1
21 silly saveTree | `-- @types/events@3.0.0
21 silly saveTree +-- async@2.6.1
21 silly saveTree | `-- lodash@4.17.11
21 silly saveTree +-- bufferutil@4.0.1
21 silly saveTree | `-- node-gyp-build@3.7.0
21 silly saveTree +-- class-transformer@0.2.0
21 silly saveTree +-- express@4.16.4
21 silly saveTree | +-- accepts@1.3.5
21 silly saveTree | | +-- mime-types@2.1.21
21 silly saveTree | | | `-- mime-db@1.37.0
21 silly saveTree | | `-- negotiator@0.6.1
21 silly saveTree | +-- array-flatten@1.1.1
21 silly saveTree | +-- body-parser@1.18.3
21 silly saveTree | | +-- bytes@3.0.0
21 silly saveTree | | +-- content-type@1.0.4
21 silly saveTree | | +-- debug@2.6.9
21 silly saveTree | | | `-- ms@2.0.0
21 silly saveTree | | +-- depd@1.1.2
21 silly saveTree | | +-- http-errors@1.6.3
21 silly saveTree | | | +-- inherits@2.0.3
21 silly saveTree | | | +-- setprototypeof@1.1.0
21 silly saveTree | | | `-- statuses@1.4.0
21 silly saveTree | | +-- iconv-lite@0.4.23
21 silly saveTree | | | `-- safer-buffer@2.1.2
21 silly saveTree | | +-- on-finished@2.3.0
21 silly saveTree | | | `-- ee-first@1.1.1
21 silly saveTree | | +-- qs@6.5.2
21 silly saveTree | | +-- raw-body@2.3.3
21 silly saveTree | | | `-- unpipe@1.0.0
21 silly saveTree | | `-- type-is@1.6.16
21 silly saveTree | |   `-- media-typer@0.3.0
21 silly saveTree | +-- content-disposition@0.5.2
21 silly saveTree | +-- content-type@1.0.4
21 silly saveTree | +-- cookie-signature@1.0.6
21 silly saveTree | +-- cookie@0.3.1
21 silly saveTree | +-- debug@2.6.9
21 silly saveTree | +-- depd@1.1.2
21 silly saveTree | +-- encodeurl@1.0.2
21 silly saveTree | +-- escape-html@1.0.3
21 silly saveTree | +-- etag@1.8.1
21 silly saveTree | +-- finalhandler@1.1.1
21 silly saveTree | | `-- parseurl@1.3.2
21 silly saveTree | +-- fresh@0.5.2
21 silly saveTree | +-- merge-descriptors@1.0.1
21 silly saveTree | +-- methods@1.1.2
21 silly saveTree | +-- on-finished@2.3.0
21 silly saveTree | +-- parseurl@1.3.2
21 silly saveTree | +-- path-to-regexp@0.1.7
21 silly saveTree | +-- proxy-addr@2.0.4
21 silly saveTree | | +-- forwarded@0.1.2
21 silly saveTree | | `-- ipaddr.js@1.8.0
21 silly saveTree | +-- qs@6.5.2
21 silly saveTree | +-- range-parser@1.2.0
21 silly saveTree | +-- safe-buffer@5.1.2
21 silly saveTree | +-- send@0.16.2
21 silly saveTree | | +-- destroy@1.0.4
21 silly saveTree | | `-- mime@1.4.1
21 silly saveTree | +-- serve-static@1.13.2
21 silly saveTree | +-- setprototypeof@1.1.0
21 silly saveTree | +-- statuses@1.4.0
21 silly saveTree | +-- type-is@1.6.16
21 silly saveTree | +-- utils-merge@1.0.1
21 silly saveTree | `-- vary@1.1.2
21 silly saveTree +-- seedrandom@2.4.4
21 silly saveTree +-- socket.io@2.2.0
21 silly saveTree | +-- debug@4.1.1
21 silly saveTree | | `-- ms@2.1.1
21 silly saveTree | +-- engine.io@3.3.2
21 silly saveTree | | +-- base64id@1.0.0
21 silly saveTree | | +-- debug@3.1.0
21 silly saveTree | | +-- engine.io-parser@2.1.3
21 silly saveTree | | | +-- after@0.8.2
21 silly saveTree | | | +-- arraybuffer.slice@0.0.7
21 silly saveTree | | | +-- base64-arraybuffer@0.1.5
21 silly saveTree | | | +-- blob@0.0.5
21 silly saveTree | | | `-- has-binary2@1.0.3
21 silly saveTree | | |   `-- isarray@2.0.1
21 silly saveTree | | `-- ws@6.1.4
21 silly saveTree | |   `-- async-limiter@1.0.0
21 silly saveTree | +-- has-binary2@1.0.3
21 silly saveTree | +-- socket.io-adapter@1.1.1
21 silly saveTree | +-- socket.io-client@2.2.0
21 silly saveTree | | +-- backo2@1.0.2
21 silly saveTree | | +-- component-bind@1.0.0
21 silly saveTree | | +-- component-emitter@1.2.1
21 silly saveTree | | +-- debug@3.1.0
21 silly saveTree | | +-- engine.io-client@3.3.2
21 silly saveTree | | | +-- component-inherit@0.0.3
21 silly saveTree | | | +-- debug@3.1.0
21 silly saveTree | | | +-- has-cors@1.1.0
21 silly saveTree | | | +-- indexof@0.0.1
21 silly saveTree | | | +-- parseqs@0.0.5
21 silly saveTree | | | | `-- better-assert@1.0.2
21 silly saveTree | | | |   `-- callsite@1.0.0
21 silly saveTree | | | +-- parseuri@0.0.5
21 silly saveTree | | | +-- ws@6.1.4
21 silly saveTree | | | +-- xmlhttprequest-ssl@1.5.5
21 silly saveTree | | | `-- yeast@0.1.2
21 silly saveTree | | +-- has-cors@1.1.0
21 silly saveTree | | +-- indexof@0.0.1
21 silly saveTree | | +-- object-component@0.0.3
21 silly saveTree | | +-- parseqs@0.0.5
21 silly saveTree | | +-- parseuri@0.0.5
21 silly saveTree | | +-- socket.io-parser@3.3.0
21 silly saveTree | | | `-- debug@3.1.0
21 silly saveTree | | `-- to-array@0.1.4
21 silly saveTree | `-- socket.io-parser@3.3.0
21 silly saveTree +-- source-map-support@0.5.10
21 silly saveTree | +-- buffer-from@1.1.1
21 silly saveTree | `-- source-map@0.6.1
21 silly saveTree +-- ta-json@2.5.0
21 silly saveTree | `-- reflect-metadata@0.1.12
21 silly saveTree `-- ws@7.0.0
22 verbose stack TypeError: Cannot read property 'resolve' of undefined
22 verbose stack     at regFetch (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-fetch\index.js:76:23)
22 verbose stack     at fetchPackument (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\lib\fetchers\registry\packument.js:42:10)
22 verbose stack     at packument (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\lib\fetchers\registry\packument.js:20:10)
22 verbose stack     at getManifest (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\lib\fetchers\registry\manifest.js:22:10)
22 verbose stack     at manifest (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\lib\fetchers\registry\manifest.js:13:10)
22 verbose stack     at Object.manifest (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\lib\fetchers\registry\index.js:17:12)
22 verbose stack     at Object.Fetcher#manifest [as manifest] (C:\Program Files\nodejs\node_modules\npm\node_modules\genfun\lib\genfun.js:15:38)
22 verbose stack     at manifest (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\lib\fetch.js:23:18)
22 verbose stack     at pinflight (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\manifest.js:24:12)
22 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\promise-inflight\inflight.js:29:24
22 verbose stack     at Promise._execute (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\debuggability.js:313:9)
22 verbose stack     at Promise._resolveFromExecutor (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\promise.js:483:18)
22 verbose stack     at new Promise (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\promise.js:79:10)
22 verbose stack     at _inflight (C:\Program Files\nodejs\node_modules\npm\node_modules\promise-inflight\inflight.js:28:25)
22 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\promise-inflight\inflight.js:22:14
22 verbose stack     at tryCatcher (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\util.js:16:23)
23 verbose cwd F:\dev\javascript\words
24 verbose Windows_NT 10.0.17134
25 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "i"
26 verbose node v10.16.0
27 verbose npm  v6.9.0
28 error Cannot read property 'resolve' of undefined
29 verbose exit [ 1, true ]

【问题讨论】:

  • 更多信息:节点 10.16 和 12.4 都会发生这种情况。根据节点文档,节点安装会同时安装节点和 npm,卸载节点也会卸载 npm。 “npm cache clean --force”不会改变任何东西
  • 好的,我关注了:stackoverflow.com/a/20711410/10588376) 正如 Marvin 所建议的那样。我已经从我的机器上清除了关于 NPM 的任何提及,重新启动,重新安装了 Node 10.16,但每当我尝试运行 NPM 时,我仍然会遇到同样的错误。

标签: node.js windows npm


【解决方案1】:

由于我机器上的 NodeJS 版本冲突,这发生在我身上。 您可以尝试的一种方法是使用以下说明 https://stackoverflow.com/a/20711410/10588376 完全卸载 NodeJS 和 NPM。 并在此之后重新安装 NodeJS。

----或----

你可以做我做的(在安装了 NVM 的情况下工作)-

  1. 运行 npm cache clean --force
  2. 转到控制面板 --> 程序 --> 程序和功能
  3. 向下滚动,卸载 Node.js 并检查是否有另一个名为“nvm for windows 1.1.7”(版本无关紧要)的文件是否存在,然后也将其卸载。 请务必记下您预先安装的所有全局 npm 包,因为这会删除全局 npm 包的所有实例。
  4. 重启你的机器
  5. 按照安装过程从https://nodejs.org/en/重新安装node.js 它现在应该可以工作了

【讨论】:

    【解决方案2】:

    一般的答案是:-

    你需要卸载:-

    1. nodejs.
    2. user/appdata/romaing/npm-cache(删除)
    3. user/appdata/romaing/node(删除)
    4. 卸载节点版本管理器 (nvm)(因为它会中断您的旧版本节点及其全局变量。)

    然后再次安装节点。一切都会好起来的。

    编码愉快!

    【讨论】:

      【解决方案3】:

      这对我有帮助(Windows 10 x64):

      • 卸载 node.js 的最新版本或 x64 版本

      • 安装不同版本或 x86 版本的 node.js

      • 尝试再次安装 npm。

      【讨论】:

        【解决方案4】:

        这对我有帮助:

        安装回旧版本:node-v10.15.3-x64.msi

        然后安装:node-v12.18.0-x64.msi

        现在可以在没有未定义的“解决”的情况下正常工作

        【讨论】:

          【解决方案5】:

          降级到节点 v8.16,然后到 v10.17,最后到 v12.13 对我有帮助。

          出于某种原因,它有助于安装那些旧版本。

          【讨论】:

            【解决方案6】:

            我们没有太多信息可以使用(因为 Node 提供的控制台输出在这种情况下不是很有用),但看起来 NPM/Node 在安装时搞砸了。

            您说您已经尝试重新安装 Node。您绝对还应该重新安装 NPM(这是一个很好的教程,可以完全删除两者:https://stackoverflow.com/a/20711410/10588376)。

            如果您只是忘记提及您还重新安装了 NPM 并且您已经安装了,我建议您降级 Node.js。您正在运行 v12.4.0,它是 Node 的最新(不太稳定)版本。您可以下载 Node v10.16.0 (https://nodejs.org/en/),它是 Node 的 LTS(长期支持)版本(LTS 是 Node 推荐的版本)。

            降级似乎解决了这里的问题:https://stackoverflow.com/a/56512076/10588376(这适用于 Linux,但在 Windows 上也值得一试)

            【讨论】:

            • 降级成功了!再次卸载所有内容后,我安装了 V8.16。 npm 工作。然后我安装了 V10.16 和 V12.4,两次 npm 都再次工作了!怎么回事?我什至从未在这台计算机上安装过 V8.16,直到最近一切正常。我一直在绞尽脑汁试图记住我对这台机器所做的任何更改,但我什么也没得到。对此有什么想法吗?
            • 我不需要降级。卸载节点和 npm 然后重新安装新的对我有用。 MarginJWendt 关于如何完全删除节点/npm 的回答中的第一个链接对我有用。
            • 现在 12.16 是最新的 LTS。
            猜你喜欢
            • 2022-12-14
            • 2020-02-12
            • 2020-05-16
            • 2021-12-04
            • 1970-01-01
            • 1970-01-01
            • 2018-07-17
            • 2021-10-09
            • 1970-01-01
            相关资源
            最近更新 更多