node.js - 在 npm 安装期间“无法读取未定义的属性‘匹配’”,但修复它只能工作一次
问题描述
解决问题的方法是删除node_modules
和package_lock.json
。这很棒,它解决了这个问题 - 但只有一次。每次我想安装另一个软件包时,我都必须这样做。每次我修复它时,问题都会在下一个npm install
.
这是我的调试日志:
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'install'
1 verbose cli ]
2 info using npm@6.14.5
3 info using node@v12.18.1
4 verbose npm-session 32e87fe4b8fbb7a5
5 silly install runPreinstallTopLevelLifecycles
6 silly preinstall client@0.1.0
7 info lifecycle client@0.1.0~preinstall: client@0.1.0
8 silly install loadCurrentTree
9 silly install readLocalPackageData
10 timing stage:loadCurrentTree Completed in 1517ms
11 silly install loadIdealTree
12 silly install cloneCurrentTreeToIdealTree
13 timing stage:loadIdealTree:cloneCurrentTree Completed in 18ms
14 silly install loadShrinkwrap
15 timing stage:rollbackFailedOptional Completed in 0ms
16 timing stage:runTopLevelLifecycles Completed in 1603ms
17 silly saveTree client@0.1.0
18 verbose stack TypeError: Cannot read property 'match' of undefined
18 verbose stack at tarballToVersion (C:\Program Files\nodejs\node_modules\npm\lib\install\inflate-shrinkwrap.js:87:20)
18 verbose stack at inflatableChild (C:\Program Files\nodejs\node_modules\npm\lib\install\inflate-shrinkwrap.js:113:22)
18 verbose stack at C:\Program Files\nodejs\node_modules\npm\lib\install\inflate-shrinkwrap.js:55:12
18 verbose stack at tryCatcher (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\util.js:16:23)
18 verbose stack at Object.gotValue (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\reduce.js:155:18)
18 verbose stack at Object.gotAccum (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\reduce.js:144:25)
18 verbose stack at Object.tryCatcher (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\util.js:16:23)
18 verbose stack at Promise._settlePromiseFromHandler (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\promise.js:517:31)
18 verbose stack at Promise._settlePromise (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\promise.js:574:18)
18 verbose stack at Promise._settlePromiseCtx (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\promise.js:611:10)
18 verbose stack at _drainQueueStep (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\async.js:142:12)
18 verbose stack at _drainQueue (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\async.js:131:9)
18 verbose stack at Async._drainQueues (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\async.js:147:5)
18 verbose stack at Immediate.Async.drainQueues [as _onImmediate] (C:\Program Files\nodejs\node_modules\npm\node_modules\bluebird\js\release\async.js:17:14)
18 verbose stack at processImmediate (internal/timers.js:456:21)
19 verbose cwd C:\NodeApps\react-twitch-logs\client
20 verbose Windows_NT 10.0.18363
21 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
22 verbose node v12.18.1
23 verbose npm v6.14.5
24 error Cannot read property 'match' of undefined
25 verbose exit [ 1, true ]
我需要一个永久的解决方案。当我尝试安装 webpack 时,问题出现了,但它比react-scripts
使用的版本更新。现在它搞砸了。
解决方案
原来这是与react-scripts
.
运行npm run eject
,然后完全删除package_lock.json
并node_modules
修复它。
推荐阅读
- c++ - 要计算句子中的文章吗?在这个程序中,最后一个 if 语句不起作用“a”和“an”
- c++ - 什么时候使用作用域指针有用,什么时候被销毁?
- amazon-web-services - 在 Pyspark 中使用模式加载数据时为 NULL
- android - WebSetting allowFileAccessFromFileURLs 在 API 级别 30 中已弃用
- visual-studio - 安装 Microsoft.PowerShell.SDK 后,我的项目中添加了一个“运行时”文件夹
- bash - 是否可以在 trap 命令中使用 Bash 历史扩展?
- python - Django - 对包含 recaptcha 的表单进行单元测试
- azure - 在 Azure 容器实例 (ACI) 中运行 Gitlab Runner
- java - Android工作室,回收视图
- python - 与 tensorflow 2 的深度互相关