首页 > 解决方案 > 每次安装 npm 都会发生此错误:“npm ERR!无法读取未定义的属性 'resolve'。”

问题描述

介绍

大家好!

我在一个双启动系统上,其中 Node、NPM 等在 Windows 7 中运行良好,但由于 Win7 已经停止启动 - 可能是由于硬件问题 - 这离开了 Windows 10。

每次我尝试使用 npm install(或某些变体,如 npm i -g)时,都会收到至少类似于下面列出的错误。这使我无法使用 npm i 获取最新的 npm。

我已经尝试查找和删除 package.json,但我不确定要删除哪个package.json。C:\users\\ 中有一个,但已被删除。从我的节点或 npm 目录中移动或删除 node_modules 并没有解决问题。

我已尝试在 Internet 上查看此问题的各种解决方案,包括安装最新的 NodeJS。

版本

通过 node -v 和 npm -v 获得。

节点:10.16

NPM:6.9

这是运行 npm i -g npm 时显示的日志。

0 info it worked if it ends with ok
1 verbose cli [ 'F:\\NodeJS\\node.exe',
1 verbose cli   'F:\\NodeJS\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'i',
1 verbose cli   'npm',
1 verbose cli   '-g' ]
2 info using npm@6.9.0
3 info using node@v10.16.0
4 verbose npm-session c2c7a7280bf360c8
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 silly fetchPackageMetaData error for npm@latest Cannot read property 'resolve' of undefined
8 timing stage:rollbackFailedOptional Completed in 1ms
9 timing stage:runTopLevelLifecycles Completed in 32ms
10 verbose stack TypeError: Cannot read property 'resolve' of undefined
10 verbose stack     at regFetch (F:\NodeJS\node_modules\npm\node_modules\npm-registry-fetch\index.js:76:23)
10 verbose stack     at fetchPackument (F:\NodeJS\node_modules\npm\node_modules\pacote\lib\fetchers\registry\packument.js:42:10)
10 verbose stack     at packument (F:\NodeJS\node_modules\npm\node_modules\pacote\lib\fetchers\registry\packument.js:20:10)
10 verbose stack     at getManifest (F:\NodeJS\node_modules\npm\node_modules\pacote\lib\fetchers\registry\manifest.js:22:10)
10 verbose stack     at manifest (F:\NodeJS\node_modules\npm\node_modules\pacote\lib\fetchers\registry\manifest.js:13:10)
10 verbose stack     at Object.manifest (F:\NodeJS\node_modules\npm\node_modules\pacote\lib\fetchers\registry\index.js:17:12)
10 verbose stack     at Object.Fetcher#manifest [as manifest] (F:\NodeJS\node_modules\npm\node_modules\genfun\lib\genfun.js:15:38)
10 verbose stack     at manifest (F:\NodeJS\node_modules\npm\node_modules\pacote\lib\fetch.js:23:18)
10 verbose stack     at pinflight (F:\NodeJS\node_modules\npm\node_modules\pacote\manifest.js:24:12)
10 verbose stack     at F:\NodeJS\node_modules\npm\node_modules\promise-inflight\inflight.js:29:24
10 verbose stack     at Promise._execute (F:\NodeJS\node_modules\npm\node_modules\bluebird\js\release\debuggability.js:313:9)
10 verbose stack     at Promise._resolveFromExecutor (F:\NodeJS\node_modules\npm\node_modules\bluebird\js\release\promise.js:483:18)
10 verbose stack     at new Promise (F:\NodeJS\node_modules\npm\node_modules\bluebird\js\release\promise.js:79:10)
10 verbose stack     at _inflight (F:\NodeJS\node_modules\npm\node_modules\promise-inflight\inflight.js:28:25)
10 verbose stack     at F:\NodeJS\node_modules\npm\node_modules\promise-inflight\inflight.js:22:14
10 verbose stack     at tryCatcher (F:\NodeJS\node_modules\npm\node_modules\bluebird\js\release\util.js:16:23)
11 verbose cwd C:\Users\Gec
12 verbose Windows_NT 10.0.17134
13 verbose argv "F:\\NodeJS\\node.exe" "F:\\NodeJS\\node_modules\\npm\\bin\\npm-cli.js" "i" "npm" "-g"
14 verbose node v10.16.0
15 verbose npm  v6.9.0
16 error Cannot read property 'resolve' of undefined
17 verbose exit [ 1, true ]

标签: javascriptnode.jsnpmnpm-install

解决方案


nodejs我在10.16.0(Windows x64 版本)和npm6.9.0上遇到了同样的问题。卸载并降级到nodejs10.15.3 和npm6.4.1后npm i似乎再次正常工作。


推荐阅读