节点错误无法读取未定义的属性“ resolve”

时间:2019-03-11 10:16:50

标签: javascript node.js reactjs npm node-modules

我正在使用reactjs,无法使用npm install安装任何软件包。我收到的错误消息是:

npm ERR! Cannot read property 'resolve' of undefined

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/stash/.npm/_logs/2019-03-11T10_07_30_264Z-debug.log

当我做npm install -verbose时:

npm info it worked if it ends with ok
npm verb cli [ '/usr/local/bin/node',
npm verb cli   '/usr/local/bin/npm',
npm verb cli   'install',
npm verb cli   '-verbose' ]
npm info using npm@6.7.0
npm info using node@v11.10.1
npm verb npm-session 869376d36eca27b5
npm info lifecycle proj-lite@1.0.0-alpha.6~preinstall: proj-lite@1.0.0-alpha.6
npm timing stage:loadCurrentTree Completed in 22ms
npm timing stage:loadIdealTree:cloneCurrentTree Completed in 1ms
npm timing stage:loadIdealTree:loadShrinkwrap Completed in 1231ms
npm timing stage:rollbackFailedOptional Completed in 1ms
npm timing stage:runTopLevelLifecycles Completed in 2661ms
npm verb stack TypeError: Cannot read property 'resolve' of undefined
npm verb stack     at regFetch (/usr/local/lib/node_modules/npm/node_modules/npm-registry-fetch/index.js:76:23)
npm verb stack     at fetchPackument (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/packument.js:42:10)
npm verb stack     at packument (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/packument.js:20:10)
npm verb stack     at getManifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/manifest.js:22:10)
npm verb stack     at manifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/manifest.js:13:10)
npm verb stack     at Object.manifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetchers/registry/index.js:17:12)
npm verb stack     at Object.Fetcher#manifest [as manifest] (/usr/local/lib/node_modules/npm/node_modules/genfun/lib/genfun.js:15:38)
npm verb stack     at manifest (/usr/local/lib/node_modules/npm/node_modules/pacote/lib/fetch.js:23:18)
npm verb stack     at pinflight (/usr/local/lib/node_modules/npm/node_modules/pacote/manifest.js:24:12)
npm verb stack     at /usr/local/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:29:24
npm verb stack     at Promise._execute (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/debuggability.js:313:9)
npm verb stack     at Promise._resolveFromExecutor (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:483:18)
npm verb stack     at new Promise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:79:10)
npm verb stack     at _inflight (/usr/local/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:28:25)
npm verb stack     at /usr/local/lib/node_modules/npm/node_modules/promise-inflight/inflight.js:22:14
npm verb stack     at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
npm verb cwd /var/www/html/lite-proj/lite-proj
npm verb Linux 4.4.0-142-generic
npm verb argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-verbose"
npm verb node v11.10.1
npm verb npm  v6.7.0
npm ERR! Cannot read property 'resolve' of undefined
npm verb exit [ 1, true ]
npm timing npm Completed in 3862ms

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/stash/.npm/_logs/2019-03-11T10_12_15_921Z-debug.log

我什至无法卸载npm并重新安装它,因为在尝试卸载时出现相同的错误。这里有什么问题,我该如何解决?

9 个答案:

答案 0 :(得分:9)

我遇到了public class HelloWorld { public static void main(String[] args) { String hello = "Hello World!\n"; System.out.print(hello); int letter = (int)hello.charAt(hello.length()-1); System.out.println(letter); } } 节点版本切换器(〜v2)的旧版本,已经切换到Node v12的情况。我可以通过切换到使用=UNIQUE({A:A;B:B}) 安装的Node的较旧版本来修复它,v8对我有用,然后使用=QUERY(UNIQUE({A:A;B:B}), "where Col1 is not null", 0) 升级版本切换器。

从那里我可以切换到任何版本的节点,然后再次使用npm。

答案 1 :(得分:6)

因此,当我尝试在Windows 10 x64 PC上运行react项目时,我最近遇到了一个非常类似的问题。虽然我安装了Node.js v12.13.0(+ npm v6.12.0)x64;我无法执行npm install命令,因为它会给我同样的错误(Cannot read property 'resolve' of undefined)。

然后根据this comment,我卸载了x64版本的Node.js,然后安装了x86版本。之后,我可以成功执行npm install命令。

答案 2 :(得分:4)

该错误的原因可能是全局软件包和节点版本冲突。我卸载了node和npm,然后重新安装了它们。

要删除nodejs和关联的软件包(如npm):

sudo apt-get purge --auto-remove nodejs

Nodejs和npm会将文件保留在系统中,这可能会在重新安装期间引起问题。我也必须删除它们。

尽管手动删除软件包是一种不好的做法(这可能会导致软件包管理器出现问题),但这对我的情况有所帮助。 This的答案显示了如何手动删除Node.js和相关文件。

要重新安装它们:

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm

答案 3 :(得分:1)

任何有此问题并已滚动至此的人,如果您是手动安装节点并且安装了nvm,则可能是问题所在,请不要手动进行,也不要卸载nvm来解决问题所在,请让nvm为您安装该版本,而不要手动执行,如果您尚未安装nvm,并且在尝试升级/降级node / npm版本时迷路了,那么请安装nvm并让它处理所有这些东西给你。

使用nvm install x.x.x,然后使用nvm use x.x.x,一切正常。

more about nvm

答案 4 :(得分:1)

我在某个时间(大约1年前)安装了Node,并且npm正常工作。 节点版本为10.15.3。安装并编写了一些小应用程序之后-直到今天我才再次使用Node。尝试使用npm安装express-我收到以下错误:“ npm ERR!无法读取未定义的属性'resolve'”,即使它以前已经起作用了。 注意到Node版本很旧,我卸载并安装了最新版本。 就我而言,我安装到了c:\ NodeJs文件夹(先前安装的位置)中。 这没有区别-我遇到了相同的错误。 然后,我将其卸载并重新安装到c:\ Program Files \ nodejs的默认文件夹中,并且npm再次起作用。希望这可以帮助其他人

答案 5 :(得分:0)

如果您使用节点版本管理器(nvm)尝试卸载它,则可能会出现问题,我遇到了同样的问题,并且我卸载了nvm并尝试了它。

适用于所有版本的node。 (在节点10.15.3、10.16和12.7上正常工作)

答案 6 :(得分:0)

在我尝试更新一个真正过时的节点安装后,在FreeBSD上我也遇到了同样的问题。

在删除节点和npm软件包(pkg delete node8-8.16.2)之后,我不得不手动删除/usr/local/lib/node_modules目录(一些npm依赖项被遗留下来,并导致了问题)。

答案 7 :(得分:0)

安装版本https://nodejs.org/dist/v10.15.3/node-v10.15.3-x64.msi代替版本12.18.3。它将完美运行。

答案 8 :(得分:0)

新的node版本和npm兼容性有问题,安装版本[https://nodejs.org/dist/v10.15.3/node-v10.15.3-x64.msi]会完美运行。

>