javascript - React Redux 无法解析自己的模块

标签 javascript npm react-redux

当我为我的项目运行 webpack 时,我收到此错误提示 React-Redux 包无法解析其某些内部模块:

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './components/Context' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 3:0-57 12:0-179
 @ ./index.tsx

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './components/Provider' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 1:0-45 12:0-179
 @ ./index.tsx

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './components/connectAdvanced' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 2:0-59 12:0-179
 @ ./index.tsx

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './connect/connect' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 4:0-40 12:0-179
 @ ./index.tsx

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './hooks/useDispatch' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 5:0-70 12:0-179 12:0-179
 @ ./index.tsx

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './hooks/useSelector' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 6:0-70 12:0-179 12:0-179
 @ ./index.tsx

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './hooks/useStore' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 7:0-61 12:0-179 12:0-179
 @ ./index.tsx

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './utils/batch' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 8:0-41 11:0-8
 @ ./index.tsx

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './utils/reactBatchedUpdates' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 9:0-79 11:9-14 12:0-179
 @ ./index.tsx

ERROR in ./node_modules/react-redux/es/index.js
Module not found: Error: Can't resolve './utils/shallowEqual' in '/home/.../frontend/src/node_modules/react-redux/es'
 @ ./node_modules/react-redux/es/index.js 10:0-48 12:0-179
 @ ./index.tsx

有人知道如何解决这个问题吗?会不会是因为我在redux之前安装了react-redux?如果是这样,我该如何解决。我已经尝试删除 package-lock.json 并删除 node_modules 并重新运行 npm install。我还深入研究了文件系统,发现文件系统上存在无法解析的模块;例如,即使 webpack 无法解析 ./components/Provider,文件 node_modules/react-redux/es/Provider.js 存在并且看起来很好。

这里是package.json的相关部分。会不会是版本不匹配之类的?

"devDependencies": {
    "@types/classnames": "^2.2.9",
    "@types/react": "^16.9.9",
    "@types/react-dom": "^16.9.1",
    "@types/react-redux": "^7.1.5",
    "@types/redux": "^3.6.0",
    "@typescript-eslint/eslint-plugin": "^2.4.0",
    "@typescript-eslint/parser": "^2.4.0",
    "eslint": "^6.5.1",
    "eslint-config-airbnb": "^18.0.1",
    "eslint-import-resolver-typescript": "^2.0.0",
    "eslint-plugin-import": "^2.18.2",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-react": "^7.16.0",
    "eslint-plugin-react-hooks": "^1.7.0",
    "prop-types": "^15.7.2",
    "react": "^16.10.2",
    "react-dom": "^16.10.2",
    "react-redux": "^7.1.1",
    "redux": "^4.0.4",
    "source-map-loader": "^0.2.4",
    "ts-loader": "^6.2.0",
    "typescript": "^3.6.4",
    "typescript-eslint": "0.0.1-alpha.0",
    "webpack": "^4.41.0",
    "webpack-cli": "^3.3.9"
  },
  "dependencies": {}

最佳答案

太棒了,我终于让它工作了!最后的诀窍是删除整个项目文件夹并从 GitHub 重新安装。安装的 node_modules 一定有问题,甚至 rm -rf 也无法修复。


编辑:我撒谎了。显然,当我删除项目并从 GitHub 重新加载它时,我不小心重置了我添加了所有 Redux 内容的提交,并且当我将其恢复时,错误也返回了。 实际上 发生的是我的 webpack.config.js 文件中的一个错误:

我得到的是 "extensions": [".ts", ".tsx"]

我需要的是 "extensions": [".ts", ".tsx", ".js"]

因此,即使 JS 文件在那里,Webpack 也会忽略它们,因为我的配置文件中缺少 ".js" 扩展名。添加这四个字符可以解决问题。这样就结束了长达数小时的调试过程。希望这可以帮助其他愚蠢到搞砸他们的 Webpack 配置然后尝试使用它来加载 React-Redux 的人。

关于javascript - React Redux 无法解析自己的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58460784/

相关文章:

javascript - requestAnimationFrame "Uncaught Type"错误

javascript - 相当于 jQuery eq 方法的原型(prototype)

node.js - Npm 错误!代码 EPERM

reactjs - 如何在 React 组件之外调度操作

javascript - 使用 React 过滤对象列表

javascript - Javascript 中的多行(HTML 和 JSP)

javascript - 这段代码:中javascript中的$符号是什么

javascript - laravel 回声 : "Uncaught ReferenceError: Echo is not defined"

node.js - 发布 NPM 包时如何排除环境文件

javascript - 使用 Redux 进行 React,组件无法识别从父级传递的属性