无法解析模块“反应”的路径。 (导入/未解决)

Posted

技术标签:

【中文标题】无法解析模块“反应”的路径。 (导入/未解决)【英文标题】:Unable to resolve path to module 'react'. (import/no-unresolved) 【发布时间】:2018-10-08 12:45:32 【问题描述】:

似乎我在这里遗漏了一些东西,它应该可以正常工作,但 eslint 不断抛出以下内容:

无法解析模块“react”的路径。 (import/no-unresolved)

“react”(导入/扩展)缺少文件扩展名

尝试import React from 'react'

这里是一些调试信息:

package.json


  "dependencies": ,
  "devDependencies": 
    "react": "16.3.2",
    "react-dom": "16.3.2",
    "@storybook/addon-actions": "^3.4.2",
    "@storybook/addon-links": "^3.4.2",
    "@storybook/addons": "^3.4.2",
    "@storybook/react": "^3.4.2",
    "babel-core": "^6.26.3",
    "babel-eslint": "^8.2.3",
    "babel-preset-env": "^1.6.1",
    "babel-preset-react": "^6.24.1",
    "babel-runtime": "^6.26.0",
    "eslint": "^4.19.1",
    "eslint-config-airbnb": "^16.1.0",
    "eslint-config-prettier": "^2.9.0",
    "eslint-plugin-import": "^2.11.0",
    "eslint-plugin-jsx-a11y": "^6.0.3",
    "eslint-plugin-react": "^7.7.0"
  

.eslintrc


  "parser": "babel-eslint",
  "extends": ["airbnb", "prettier"],
  "env": 
    "browser": true,
    "node": true,
    "es6": true
  

.babelrc


  "presets": ["env", "react"]

编辑器:atom v1.26.1

谢谢。

【问题讨论】:

【参考方案1】:

我认为它抱怨是因为react 应该在dependencies 中:


  "dependencies": 
    "react": "16.3.2",
    "react-dom": "16.3.2",
  ,
  "devDependencies": 
    "@storybook/addon-actions": "^3.4.2",
    "@storybook/addon-links": "^3.4.2",
    "@storybook/addons": "^3.4.2",
    "@storybook/react": "^3.4.2",
    "babel-core": "^6.26.3",
    "babel-eslint": "^8.2.3",
    "babel-preset-env": "^1.6.1",
    "babel-preset-react": "^6.24.1",
    "babel-runtime": "^6.26.0",
    "eslint": "^4.19.1",
    "eslint-config-airbnb": "^16.1.0",
    "eslint-config-prettier": "^2.9.0",
    "eslint-plugin-import": "^2.11.0",
    "eslint-plugin-jsx-a11y": "^6.0.3",
    "eslint-plugin-react": "^7.7.0"
  

【讨论】:

您需要做什么才能正确安装它? @jalal246 @Sankofa 只需将“react”行从 devDependencies 移至依赖项,然后运行 ​​npm install。如果您根本没有安装 react,请使用 npm install react 安装它【参考方案2】:

我使用npm i -E react react-dom 安装了 reactreact-dom,试图安装未正确安装的确切版本。

npm i react react-dom -D 解决了这个问题。

【讨论】:

【参考方案3】:

如果您使用的是 React Native,在您的 .eslintrc 文件中添加 .native.js 作为允许的扩展名可能会有所帮助。 此外,如果您使用的是 Typescript,那么 .ts.tsx 也会有所帮助。

"settings": 
  "import/resolver": 
    "node": 
      "extensions": [".ts", ".tsx", ".native.js"]
    
  

【讨论】:

谢谢,这是我的问题。它没有 .d.ts 文件。 ***.com/a/55280867/470749 似乎同意你的看法。我的还没有开始工作。我仍然看到Missing file extension "ts" for "./types" import/extensions【参考方案4】:

我遇到过同样的问题。

在我的情况下,出现此错误是因为我从远程存储库中提取了新更新并且它带来了新的依赖项。

为了解决这个问题,我只需使用 npm install 安装该依赖项

【讨论】:

【参考方案5】:

我遇到了一些问题,我从项目中删除了 nodo_modules 目录并运行 yarn install / npm install

【讨论】:

【参考方案6】:

这也发生在我身上。就我而言,这是因为我运行的是 npm 版本 6,但团队成员通过 npm 版本 7 安装了一个新库。版本 7 使用新版本的锁定文件格式。

我们的解决方案是确保每个人都运行相同的 npm 版本,以便我们的 package-lock.json 文件保持一致。

【讨论】:

以上是关于无法解析模块“反应”的路径。 (导入/未解决)的主要内容,如果未能解决你的问题,请参考以下文章

React 无法编译模块未找到:无法在listingDetail 上解析

webpack中的eslint导入:无法解析模块的路径

VueJS 和 FontAwesome 导入 - 未找到模块:错误:无法解析 '@fortawesome/fontawesome-svg-core'

无法编译反应应用程序,因为它显示“未找到模块”

Rails 6 无法导入纱线依赖项:未捕获错误:模块解析失败:意外字符“#”(1:0)

无法在本机反应中解析模块加密