【问题标题】:Node error Cannot read property 'resolve' of undefined节点错误无法读取未定义的属性“解决”
【发布时间】:2019-08-01 15:10:10
【问题描述】:

我正在使用 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 并重新安装它,因为我在尝试卸载时遇到了同样的错误。这里有什么问题,我该如何解决?

【问题讨论】:

  • 我已经有同样的问题,我的问题是我在我的 Mac 上安装了一些全局包,然后我将它们与 npm link <name of package> 链接起来,所以我删除了 node_modules 文件夹并创建了一个 npm i 和它确实有效,请尝试让我们知道它是否有效:/
  • 尝试更新 npm : npm install npm -g
  • 在我的情况下,我有一些新的依赖项,我需要引入并忘记运行 npm install 来引入它们。抱歉,我知道它可能无法回答您的问题,但这是第一个搜索此错误时找到的答案。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      而不是版本 12.18.3 安装版本 https://nodejs.org/dist/v10.15.3/node-v10.15.3-x64.msi 。它会完美运行。

      【讨论】:

        【解决方案4】:

        如果您手动安装节点并且安装了nvm,那么任何人都遇到此问题并且已经滚动到这里,那么这可能是问题所在,不要手动执行,也不要卸载 nvm 来解决问题,只需让 nvm 为您安装版本而不是手动安装,如果您没有安装 nvm 并且您在尝试升级/降级 node/npm 版本时迷失了方向,然后安装 nvm 并让它为您处理所有这些事情.

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

        more about nvm

        【讨论】:

          【解决方案5】:

          在我尝试更新一个非常过时的节点安装后,我在 FreeBSD 上也发生了同样的问题。

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

          【讨论】:

            【解决方案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命令了。

            【讨论】:

              【解决方案7】:

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

              适用于所有版本的 node 。 (适用于节点 10.15.3、10.16 和 12.7)

              【讨论】:

                【解决方案8】:

                我使用旧版本的 n 节点版本切换器 (~v2) 遇到了这种情况,已切换到节点 v12。我可以通过切换到它使用 n 安装的更旧版本的 Node 来修复它,v8 对我有用,然后使用 sudo npm install -g n 升级版本切换器。

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

                【讨论】:

                • 如果其他人遇到这种情况,在修复它之前,您可能会使用 n 发布从其他更高版本的 node 获得的错误 - 它们与此略有不同(就像持久性),它可以帮助人们排除故障。
                【解决方案9】:

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

                要删除 nodejs 和相关的包(如 npm):

                sudo apt-get purge --auto-remove nodejs
                

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

                虽然手动删除软件包是一种不好的做法(它可能会导致软件包管理器出现问题),但它对我的情况有所帮助。 This的答案展示了如何手动删除nodejs及相关文件。

                要重新安装它们:

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

                【讨论】:

                • 对于Homebrew 用户,您可以输入brew remove node,它将删除brew'd 版本。
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-11-01
                • 2021-01-17
                • 1970-01-01
                • 2022-01-19
                • 2019-11-27
                • 2021-07-19
                相关资源
                最近更新 更多