我有一个非常简单的反应材料-ui项目。
我最近向顶级文件夹添加了jsconfig.json
{
"compilerOptions": {
"target": "es6",
"checkJs": true,
"jsx": "react"
},
"exclude": [
"node_modules",
"data",
"docs",
".cache",
"dist"
]
}
哪个工作正常。但是VSCode发现了一些我想删除的错误:
找不到模块"@material-ui/核心/按钮"。
找不到模块"@material-ui/core/styles"。
找不到模块"简单易行"。
导入工作正常,但我宁愿不只是禁用 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';
设置"module": "commonjs"
这是我的做法:
jsconfig.json
{
"compilerOptions": {
"baseUrl": ".",
"target": "es6",
"module": "commonjs",
"paths": {
"@components/*": ["./src/components/*"],
"@constants/*": ["./src/constants/*"],
"@helpers/*": ["./src/helpers/*"]
}
},
"include": [
"src/**/*"
]
查看我在 Github Vscode 上得到的问题的答案
是的,如果您从
node_modules
导入模块,您通常需要设置"module": "commonjs"
(我相信"moduleResolution": "node"
也应该有效(。commonjs
是默认设置,但"target": "es6"
会覆盖它以使用"module": "es6"
,除非您明确指定其他"module"
设置模块选项在这里更详细地介绍:了解 tsconfig 中的"目标"和"模块">
块引用
VSCODE 设置
转到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
然后,为当前用户全局配置排除文件夹。