React - 当尝试运行npm start时出现错误:找不到模块react

4

当我尝试运行'react app'的'npm start'命令时,遇到了一个bug。

在开发时,我的应用程序基本按照我预期的方式运行,但是我遇到了一个bug,需要更新我的node版本以进行潜在修复。我将node更新为v16.13.2,并决定将npm更新为v8.3.2。现在当我尝试运行npm start时,我收到以下错误信息。我也觉得奇怪的是引用的文件不是在当前项目文件夹内的目录中。

到目前为止,我已经尝试了以下操作:

  1. 删除 package-lock.json 和 node_modules 文件夹,然后使用 npm install 重新安装。
  2. 重启计算机。
  3. npm install react-scripts。

我想知道是否有人能够友好地提供解决方案?

    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"
    ]
  }
}

enter image description here


尝试特定安装React,即npm install react@^17.0.2。 - Nitin Daddikar
很遗憾,那并没有起作用 :( - Shane
2个回答

5
经过一周的努力,我终于找到了解决方案。
首先,我尝试重新安装较旧版本的node和npm,但这并没有解决我的问题。然后我重新安装了上述版本。
不知何故,我的项目变得损坏了,可能是因为我在打开它时更新了Node / NPM。然后我尝试将代码转移到一个新的create-react-app中。在这样做后,我进入了package.json文件夹,并发现我最后一步需要检查我的依赖项中react的版本。
我使用的react版本("react": "^17.0.2")与我项目中使用的许多节点模块不兼容,导致它们无法在NPM中被找到。
我通过将我的依赖项中的react版本回退到较旧的版本来解决了这个问题,具体方法是更新package.json文件中的以下内容:
"react": "^16.13.0",
"react-dom": "^16.13.0",
"react-scripts": "4.0.3"

完成后,我保存并在终端中执行了NPM安装,现在我的应用程序可以正常加载。

注意:我尝试在原始项目中更新React依赖项,但仍无法使其工作。但是,这个新项目与我的旧代码和上述更改一起可以正常工作。希望这能帮助到某些人!


1

如果有和我一样蠢的人,这个提示可能会对你有所帮助...我在测试一个日期选择器包时,不喜欢它,于是回到终端,找到安装步骤,在命令前加了 'un' 然后按了回车...

没有意识到从网上复制的安装命令中有'react'这个词...结果我把react从我的react项目中删除了 :)

所以,如果你遇到这个错误,请检查客户端文件夹中的package.json文件,并确保其中有一个"react"项!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接