【问题标题】:Material-UI components not found during TypeScript module resolution在 TypeScript 模块解析期间未找到 Material-UI 组件
【发布时间】:2020-02-01 05:48:06
【问题描述】:

我有一个 Visual Studio 2019 (v16.3.2) React TypeScript 项目,其中包含 Material-UI 组件。 TypeScript 编译器无法解析任何 @material-ui 导入,并出现如下错误,导致无法生成相应的 JavaScript。

Error   TS2307  (TS) Cannot find module '@material-ui/core/Grid'.

上述错误的模块是

import * as React from 'react';

// Material-UI
import Grid from '@material-ui/core/Grid';

// Components
import SkiWeekends from './SkiWeekends';

const EZForm: React.FC = () => {
  return (
    <React.Fragment>
      <Grid container spacing={3}>
        <Grid item xs={12}>
          <SkiWeekends/>
        </Grid>
        <Grid item xs={12}>
          A
        </Grid>
        <Grid item xs={12}>
          B
        </Grid>
        <Grid item xs={12}>
          A
        </Grid>
      </Grid>
    </React.Fragment>
  );
}

export default EZForm;

tsconfig.json 是

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "es6"
    ],
    "noImplicitAny": true,
    "noImplicitThis": true,
    "strictNullChecks": true,
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react"
  },
  "include": [
    "src"
  ]
}

package.json 是

{
  "name": "msc",
  "version": "3.0.0",
  "private": true,
  "dependencies": {
    "@types/jest": "24.0.18",
    "@types/node": "12.7.9",
    "@types/react": "16.9.4",
    "@types/react-dom": "16.8.2",
    "@types/react-redux": "7.1.4",
    "@types/react-router-dom": "5.1.0",
    "@types/redux-thunk": "2.1.32",
    "@material-ui/core": "4.5.0",
    "@material-ui/icons": "4.4.3",
    "@material-ui/styles": "4.5.0",
    "react": "16.10.1",
    "react-dom": "16.10.1",
    "react-redux": "7.1.1",
    "react-router-dom": "5.1.2",
    "react-scripts": "3.1.2",
    "redux": "4.0.4",
    "redux-devtools-extension": "2.13.8",
    "redux-thunk": "2.3.0",
    "typescript": "3.6.3"
  },
  "scripts": {
    "start": "rimraf ./build && react-scripts start",
    "build": "react-scripts build",
    "test": "cross-env CI=true react-scripts test --env=jsdom",
    "eject": "react-scripts eject",
    "lint": "eslint ./src/"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

我已验证 @material-ui 包已安装在 node_modules 文件夹中。

所有其他包/导入工作正常。对为什么在 TS 编译期间没有解决 material-ui 模块的想法表示赞赏。

【问题讨论】:

    标签: reactjs typescript material-ui visual-studio-2019


    【解决方案1】:

    我遇到了同样的问题,我的解决方法是将 "moduleResolution": "node" 添加到 tsconfig.json。

    【讨论】:

      【解决方案2】:

      对我来说,只需删除所有导入声明并再次添加它们即可解决问题。

      【讨论】:

      • 太奇怪了..但这也对我有用。怀疑发生了其他事情,但是??
      • 我认为其背后的原因可能是这样,如果导入语句都没有更改,Typescript 会缓存您的所有导入语句,但是如果发生了某些更改,例如删除和添加导入语句,那么 TS服务器可能会再次检查类型定义。
      • 我不得不重新启动 vscode 并做到了
      【解决方案3】:

      经过一番研究,结果发现 tsconfig 包含部分需要从默认值修改以在子目录中查找文件。

      默认包含只查找 src 文件夹中的文件

      "include": [
        "src"
      ]
      

      modified 在任何子目录中查找文件

      "include": [
        "src/**/*"
      ]
      

      关于 tsconfig.json 的良好参考

      https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

      【讨论】:

      • 我觉得这很奇怪,因为node_modules 文件夹不包含在src 中。我遇到了同样的问题,但目前没有解决方案。
      【解决方案4】:

      对我来说,通过运行 npm install / yarn install 解决了这个问题

      【讨论】:

        【解决方案5】:

        对我来说,问题是通过运行yarn add @material-ui/data-grid 解决的 而且我在你的 package.json 中没有看到 @material-ui/data-grid 包,所以我认为它丢失了

        【讨论】:

          猜你喜欢
          • 2018-02-16
          • 2018-03-30
          • 2019-02-02
          • 2020-03-18
          • 2021-10-12
          • 2018-09-19
          • 2020-09-09
          • 2020-10-30
          • 1970-01-01
          相关资源
          最近更新 更多