我有一个非常简单的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';
答案 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
转到File -> Preferences -> Settings
或on 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
然后,为当前用户全局配置排除文件夹。