首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切换节点版本时,我发现npm中的‘`Cannot property 'resolve’of unfined`

切换节点版本时,我发现npm中的‘`Cannot property 'resolve’of unfined`
EN

Stack Overflow用户
提问于 2019-03-05 06:31:40
回答 2查看 3.1K关注 0票数 1

我使用n版本管理器,当我将节点版本更改为11.10npm时,NPM停止工作。

代码语言:javascript
复制
$ n latest
node/11.10.1

$ npm i  sinon
npm ERR! Cannot read property 'resolve' of undefined

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/myuser/.npm/_logs/2019-03-04T22_12_54_458Z-debug.log

$ npm --version
6.7.0

如果我改回以前的Node版本-或者实际上是任何更早的版本,它又开始工作了。

调试日志的完整输出

代码语言:javascript
复制
0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'i', 'sinon' ]
2 info using npm@6.7.0
3 info using node@v11.10.1
4 verbose npm-session d32761bbecba8a12
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 silly fetchPackageMetaData error for sinon@^7.2.7 Cannot read property 'resolve' of undefined
8 timing stage:rollbackFailedOptional Completed in 0ms
9 timing stage:runTopLevelLifecycles Completed in 73ms
10 verbose stack TypeError: Cannot read property 'resolve' of undefined
10 verbose stack     at regFetch (/usr/local/lib/node_modules/npm/node_modules/npm-registry-fetch/index.js:76:23)
10 verbose stack     at fetchPackument (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/packument.js:42:10)
10 verbose stack     at packument (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/packument.js:20:10)
10 verbose stack     at getManifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/manifest.js:22:10)
10 verbose stack     at manifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/manifest.js:13:10)
10 verbose stack     at Object.manifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/index.js:17:12)
10 verbose stack     at Object.Fetcher#manifest [as manifest] (/usr/local/lib/node_modules/npm/node_modules/genfun/lib/genfun.js:15:38)
10 verbose stack     at manifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetch.js:23:18)
10 verbose stack     at pinflight (/usr/local/lib/node_modules/npm/node_modules/pacote/manifest.js:24:12)
10 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:29:24
10 verbose stack     at Promise._execute (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/debuggability.js:313:9)
10 verbose stack     at Promise._resolveFromExecutor (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:483:18)
10 verbose stack     at new Promise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:79:10)
10 verbose stack     at _inflight (/usr/local/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:28:25)
10 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:22:14
10 verbose stack     at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
11 verbose cwd /tmp/foo
12 verbose Linux 4.15.0-34-generic
13 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "i" "sinon"
14 verbose node v11.10.1
15 verbose npm  v6.7.0
16 error Cannot read property 'resolve' of undefined
17 verbose exit [ 1, true ]
EN

回答 2

Stack Overflow用户

发布于 2019-03-05 06:31:40

这似乎是n的一个问题,或者它如何捆绑NPM,用于(仅)Node11.10版本。基本上,全局npm安装已中断。

如果使用n恢复到节点和NPM的早期版本,并下载相同的有问题的版本(6.7.0),这个问题就会得到解决。

代码语言:javascript
复制
n 11.9
npm install -g npm@6.7
n 11.10

这似乎覆盖了现有的NPM版本6.7.0的全局缓存下载,并修复了安装。即使在节点版本之间切换之后,修复仍然有效,即使npm命令每次都被重置为默认版本。这意味着,即使您使用npm i npm@6.8 -gnpm进行全局升级,在您下次来回切换到Node11.10时,它也会被重置为6.7。

票数 4
EN

Stack Overflow用户

发布于 2019-03-28 13:05:12

您运行的是低于2.1.12版本的n吗?n在2.1.12版本中进行了更新,在安装过程中删除了以前的npm node_modules文件夹,以避免npm模块文件夹的布局和内容在不同版本之间发生变化时出现问题。

如果您使用npm安装了n,请使用以下简短版本:

代码语言:javascript
复制
npm install -g n

长版本:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54992608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档