Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 切换节点版本使我无法从npm读取未定义的属性'resolve'_Node.js_N - Fatal编程技术网

Node.js 切换节点版本使我无法从npm读取未定义的属性'resolve'

Node.js 切换节点版本使我无法从npm读取未定义的属性'resolve',node.js,n,Node.js,N,我使用n版本管理器,当我将节点版本更改为11.10时,NPM停止工作 $ 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.

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

$ 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的早期版本,或者任何早期版本,它将重新开始工作

调试日志的完整输出

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 ]

这似乎是n的一个问题,或者是它如何捆绑NPM,只针对11.10版的Node。基本上,全球npm安装已中断

如果使用n还原到Node和NPM的早期版本并下载相同的有问题的版本6.7.0,则可以解决此问题

n 11.9
npm install -g npm@6.7
n 11.10

这似乎覆盖了NPM版本6.7.0的现有缓存全局下载,并修复了安装。即使在节点版本之间切换后,即使每次将npm命令重置为指向默认值,修复程序仍能继续工作。这意味着即使你做了npm我npm@6.8-g要对npm进行全局升级,下次来回切换到Node 11.10时,它将重置为6.7。

这似乎是n的问题,或者它如何捆绑npm,仅适用于Node 11.10版本。基本上,全球npm安装已中断

如果使用n还原到Node和NPM的早期版本并下载相同的有问题的版本6.7.0,则可以解决此问题

n 11.9
npm install -g npm@6.7
n 11.10

这似乎覆盖了NPM版本6.7.0的现有缓存全局下载,并修复了安装。即使在节点版本之间切换后,即使每次将npm命令重置为指向默认值,修复程序仍能继续工作。这意味着即使你做了npm我npm@6.8-g要对npm进行全局升级,下次来回切换到节点11.10时,它将重置为6.7。

您运行的是早于v2.1.12的n版本吗?n在v2.1.12中进行了更新,以在安装过程中删除以前的npm node_modules文件夹,以避免在版本之间更改npm modules文件夹的布局和内容时出现问题

如果您使用npm安装了n,则短版本:

npm install -g n
长版本:


您运行的n版本是否早于v2.1.12?n在v2.1.12中进行了更新,以在安装过程中删除以前的npm node_modules文件夹,以避免在版本之间更改npm modules文件夹的布局和内容时出现问题

如果您使用npm安装了n,则短版本:

npm install -g n
长版本: