React Redux не может разрешать свои собственные модули - PullRequest
1 голос
/ 19 октября 2019

Когда я запускаю 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

Есть ли у кого-нибудь идеи, как решить эту проблему? ? Может ли это быть потому, что я установил реакт-редукс перед редуксом? Если так, как я мог это исправить. Я уже пытался удалить 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": {}

1 Ответ

2 голосов
/ 19 октября 2019

Круто, я наконец получил его на работу! В итоге получилось удалить всю папку проекта и переустановить ее из GitHub. Должно быть, что-то не так с установленной node_modules, которую даже rm -rf не удалось исправить.


РЕДАКТИРОВАТЬ: Я солгал. По-видимому, когда я удалил проект и перезагрузил его из GitHub, я случайно сбросил коммит, в который я добавил все вещи Redux, и как только я вернул его, ошибка также вернулась. То, что фактически произошло, было ошибкой в ​​моем webpack.config.js файле:

То, что у меня было "extensions": [".ts", ".tsx"]

Мне нужно было "extensions": [".ts", ".tsx", ".js"]

Таким образом, даже несмотря на наличие файлов JS, Webpack игнорировал их, поскольку в моем конфигурационном файле отсутствовало расширение ".js". Добавление в эти четыре символа решило проблему. И так заканчивается сеанс отладки продолжительностью несколько часов. Надеюсь, что это поможет кому-нибудь еще настолько глупому испортить свою конфигурацию Webpack, а затем попытаться использовать его для загрузки React-Redux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...