VSCODE checkJs找不到模块

时间:2019-06-13 18:35:46

标签: visual-studio-code tsconfig

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

我最近在顶层文件夹中添加了jsconfig.json

{
    "compilerOptions": {
        "target": "es6",
        "checkJs": true,
        "jsx": "react"
    },
    "exclude": [
        "node_modules",
        "data",
        "docs",
        ".cache",
        "dist"
    ]
}

哪个工作正常。但是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';

2 个答案:

答案 0 :(得分:2)

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

这是我的做法:

jsconfig.json

{
  "compilerOptions": {
      "baseUrl": ".",
      "target": "es6",
      "module": "commonjs",
      "paths": {
        "@components/*": ["./src/components/*"],
        "@constants/*": ["./src/constants/*"],
        "@helpers/*": ["./src/helpers/*"]
      }
  },
  "include": [
    "src/**/*"
  ]

查看我在issue on Github Vscode上得到的答案

  

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

     

此处更详细地介绍了模块选项:Understanding "target" and "module" in tsconfig

答案 1 :(得分:0)

  

Blockquote

VSCODE settings

转到File -> Preferences -> Settingson Mac Code -> Preferences -> Settings 选择工作区设置选项卡 将此代码添加到右侧显示的settings.json文件中:

///将您的设置放在此文件中以覆盖默认设置和用户设置。

{
    "files.exclude": {
        "**/.git": true,         // this is a default value
        "**/.DS_Store": true,    // this is a default value

        "**/node_modules": true, // this excludes all folders 
                                 // named "node_modules" from 
                                 // the explore tree

        // alternative version
        "node_modules": true    // this excludes the folder 
                                // only from the root of
                                // your workspace 
    }
}

If you chose File -> Preferences -> User Settings

然后,为当前用户全局配置排除文件夹。