React - Error: Cannot find module react when trying to run npm start
React - Error: Cannot find module react when trying to run npm start
我 运行 在尝试 运行 'npm start' 一个 React 应用程序时遇到了一个错误。
我的应用程序 运行 在开发过程中大体上符合我的预期,但是我 运行 遇到了一个错误,需要我更新我的节点版本作为潜在的修复。我将节点更新到 v16.13.2,我还决定将 npm 更新到 v8.3.2。现在,当尝试 运行 npm start 时,我收到以下错误。我还觉得奇怪的是,引用的文件不是来自我当前项目文件夹中的目录。
到目前为止我已经尝试了以下方法:
- 删除 package-lock.json 和 node_modules 文件夹,然后使用 npm install 重新安装。
- 正在重新启动我的计算机。
- npm 安装反应脚本。
我想知道是否有人可以提供解决方案?
node:internal/modules/cjs/loader:936
throw err;
^
Error: Cannot find module 'react'
Require stack:
- C:\Users\shane\AppData\Roaming\npm\node_modules\react-scripts\scripts\start.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.resolve (node:internal/modules/cjs/helpers:108:19)
at Object.<anonymous> (C:\Users\shane\AppData\Roaming\npm\node_modules\react-scripts\scripts\start.js:52:31)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\Users\shane\AppData\Roaming\npm\node_modules\react-scripts\scripts\start.js'
]
}
package.json
{
"name": "faucet",
"version": "0.1.0",
"private": true,
"dependencies": {
"babel-eslint": "^10.0.2",
"babel-polyfill": "6.26.0",
"babel-preset-env": "1.7.0",
"babel-preset-es2015": "6.24.1",
"babel-preset-stage-2": "6.24.1",
"babel-preset-stage-3": "6.24.1",
"babel-register": "6.26.0",
"@babel/eslint-parser": "^7.5.4",
"@metamask/detect-provider": "^1.2.0",
"@testing-library/jest-dom": "^5.16.1",
"@testing-library/react": "^12.1.2",
"@testing-library/user-event": "^13.5.0",
"@truffle/contract": "^4.4.5",
"@truffle/hdwallet-provider": "^2.0.0",
"bulma": "^0.9.3",
"ganache-cli": "^6.12.2",
"node-fetch": "^2.6.7",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "^4.0.3",
"solc": "^0.8.11",
"truffle": "^5.4.29",
"web-vitals": "^2.1.3",
"web3": "^1.7.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
经过一个星期终于找到了解决办法
首先,我尝试重新安装旧版本的节点和 npm,但没有解决我的问题。然后我重新安装了我上面提到的版本。
我的项目以某种方式损坏,可能是因为我在 Node/NPM 打开时更新了它。然后我尝试将我的代码转移到一个新的 create-react-app 中。完成此操作后,我去了我的 package.json 文件夹,发现我的最后一步是使用我在依赖项中做出反应的版本。
我使用的 React 版本 ("react": "^17.0.2"
) 与我在项目中使用的许多节点模块不兼容,这导致它们在 NPM 中找不到。
我能够通过更新到我的 package.json 文件的依赖项中的以下内容来恢复到旧版本的反应来解决这个问题:
"react": "^16.13.0",
"react-dom": "^16.13.0",
"react-scripts": "4.0.3"
完成后,我保存并在终端中安装了 NPM,现在我的应用程序正在正确加载。
注意:我尝试更新原始项目中的 React 依赖项,但仍然无法使其正常工作。但是,这个新项目适用于我的旧代码和上述更改。希望这可以帮助别人!
我 运行 在尝试 运行 'npm start' 一个 React 应用程序时遇到了一个错误。
我的应用程序 运行 在开发过程中大体上符合我的预期,但是我 运行 遇到了一个错误,需要我更新我的节点版本作为潜在的修复。我将节点更新到 v16.13.2,我还决定将 npm 更新到 v8.3.2。现在,当尝试 运行 npm start 时,我收到以下错误。我还觉得奇怪的是,引用的文件不是来自我当前项目文件夹中的目录。
到目前为止我已经尝试了以下方法:
- 删除 package-lock.json 和 node_modules 文件夹,然后使用 npm install 重新安装。
- 正在重新启动我的计算机。
- npm 安装反应脚本。
我想知道是否有人可以提供解决方案?
node:internal/modules/cjs/loader:936
throw err;
^
Error: Cannot find module 'react'
Require stack:
- C:\Users\shane\AppData\Roaming\npm\node_modules\react-scripts\scripts\start.js
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
at Function.resolve (node:internal/modules/cjs/helpers:108:19)
at Object.<anonymous> (C:\Users\shane\AppData\Roaming\npm\node_modules\react-scripts\scripts\start.js:52:31)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\Users\shane\AppData\Roaming\npm\node_modules\react-scripts\scripts\start.js'
]
}
package.json
{
"name": "faucet",
"version": "0.1.0",
"private": true,
"dependencies": {
"babel-eslint": "^10.0.2",
"babel-polyfill": "6.26.0",
"babel-preset-env": "1.7.0",
"babel-preset-es2015": "6.24.1",
"babel-preset-stage-2": "6.24.1",
"babel-preset-stage-3": "6.24.1",
"babel-register": "6.26.0",
"@babel/eslint-parser": "^7.5.4",
"@metamask/detect-provider": "^1.2.0",
"@testing-library/jest-dom": "^5.16.1",
"@testing-library/react": "^12.1.2",
"@testing-library/user-event": "^13.5.0",
"@truffle/contract": "^4.4.5",
"@truffle/hdwallet-provider": "^2.0.0",
"bulma": "^0.9.3",
"ganache-cli": "^6.12.2",
"node-fetch": "^2.6.7",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "^4.0.3",
"solc": "^0.8.11",
"truffle": "^5.4.29",
"web-vitals": "^2.1.3",
"web3": "^1.7.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
经过一个星期终于找到了解决办法
首先,我尝试重新安装旧版本的节点和 npm,但没有解决我的问题。然后我重新安装了我上面提到的版本。
我的项目以某种方式损坏,可能是因为我在 Node/NPM 打开时更新了它。然后我尝试将我的代码转移到一个新的 create-react-app 中。完成此操作后,我去了我的 package.json 文件夹,发现我的最后一步是使用我在依赖项中做出反应的版本。
我使用的 React 版本 ("react": "^17.0.2"
) 与我在项目中使用的许多节点模块不兼容,这导致它们在 NPM 中找不到。
我能够通过更新到我的 package.json 文件的依赖项中的以下内容来恢复到旧版本的反应来解决这个问题:
"react": "^16.13.0",
"react-dom": "^16.13.0",
"react-scripts": "4.0.3"
完成后,我保存并在终端中安装了 NPM,现在我的应用程序正在正确加载。
注意:我尝试更新原始项目中的 React 依赖项,但仍然无法使其正常工作。但是,这个新项目适用于我的旧代码和上述更改。希望这可以帮助别人!