VSCODE checkJs 没有找到模块

Dr.*_*YSG 5 tsconfig visual-studio-code

我有一个非常简单的 react material-ui 项目。

我最近jsconfig.json在顶级文件夹中添加了一个

{
    "compilerOptions": {
        "target": "es6",
        "checkJs": true,
        "jsx": "react"
    },
    "exclude": [
        "node_modules",
        "data",
        "docs",
        ".cache",
        "dist"
    ]
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常。但是 VSCode 发现了一些我想删除的错误:

找不到模块“@material-ui/core/Button”。

找不到模块“@material-ui/core/styles”。

找不到模块“easy-peasy”。

导入工作正常,但我不只是禁用 ts-check。所有这些导入都在 ./node-modules 树中(包括 easy-peasy)。

(顺便说一句,代码都是 JavaScript 而不是 TS)。

import { action, createStore, StoreProvider, useStore, useActions, thunk } from 'easy-peasy';
import Button from '@material-ui/core/Button';
import { withStyles } from '@material-ui/core/styles';
import Grid from '@material-ui/core/Grid';
import TextField from '@material-ui/core/TextField';
Run Code Online (Sandbox Code Playgroud)

cbd*_*per 6

你可能需要设置 "module": "commonjs"

这是我的做法:

jsconfig.json

{
  "compilerOptions": {
      "baseUrl": ".",
      "target": "es6",
      "module": "commonjs",
      "paths": {
        "@components/*": ["./src/components/*"],
        "@constants/*": ["./src/constants/*"],
        "@helpers/*": ["./src/helpers/*"]
      }
  },
  "include": [
    "src/**/*"
  ]
Run Code Online (Sandbox Code Playgroud)

看到我在我的回答 在 Github Vscode问题

是的,如果您从 导入模块node_modules,您通常需要设置"module": "commonjs""moduleResolution": "node"我相信也应该有效)。commonjs是默认设置,但"target": "es6"会覆盖它以使用"module": "es6"除非您明确指定其他"module"设置,否则

此处更详细地介绍了模块选项:了解 tsconfig 中的“目标”和“模块”