我正在使用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并重新安装它,因为在尝试卸载时出现相同的错误。这里有什么问题,我该如何解决?
答案 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
,一切正常。
答案 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]会完美运行。
>