英文:
npx eslint --fix error when adding plugins to vite.config.ts
问题
Here's the translated content:
"出现以下错误,当将插件添加到 vite.config.ts 文件时:
1:1 错误 解析错误:'import' 和 'export' 只能在 'sourceType: module' 中出现
vite.config.ts:
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import eslint from 'vite-plugin-eslint';
export default defineConfig({
plugins: [react(), eslint()],
});
如果我只保留 react 插件,它可以正常工作,但无论我添加哪个额外组件都会导致此问题,这是我的 eslintrc 文件:
.eslintrc.json:
{
"extends": ["eslint:recommended", "plugin:node/recommended", "prettier"],
"plugins": ["node", "prettier"],
"rules": {
"prettier/prettier": "error",
"block-scoped-var": "error",
"eqeqeq": "error",
"no-var": "error",
"prefer-const": "error",
"eol-last": "error",
"prefer-arrow-callback": "error",
"no-trailing-spaces": "error",
"quotes": ["warn", "single", {"avoidEscape": true}],
"no-restricted-properties": [
"error",
{
"object": "describe",
"property": "only"
},
{
"object": "it",
"property": "only"
}
]
},
"overrides": [
{
"files": ["src/**/*.ts", "src/**/*.tsx"],
"parser": "@typescript-eslint/parser",
"extends": ["plugin:@typescript-eslint/recommended"],
"rules": {
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/no-warning-comments": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/camelcase": "off",
"node/no-missing-import": "off",
"node/no-empty-function": "off",
"node/no-unsupported-features/es-syntax": "off",
"node/no-missing-require": "off",
"node/shebang": "off",
"no-dupe-class-members": "off",
"require-atomic-updates": "off"
},
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
}
}
]
}
我还使用 TypeScript 5.0.3,不知道是否相关。"
英文:
For some reason I'm getting this error when adding plugins to the vite.config.ts file :
1:1 error Parsing error: 'import' and 'export' may appear only with 'sourceType: module'
vite.config.ts :
import {defineConfig} from 'vite';
import react from '@vitejs/plugin-react';
import eslint from 'vite-plugin-eslint';
export default defineConfig({
plugins: [react(), eslint()],
});
If I leave only the react plugin it works fine, but whatever extra component I add will cause this issue, this is my eslintrc file :
.eslintrc.json :
{
"extends": ["eslint:recommended", "plugin:node/recommended", "prettier"],
"plugins": ["node", "prettier"],
"rules": {
"prettier/prettier": "error",
"block-scoped-var": "error",
"eqeqeq": "error",
"no-var": "error",
"prefer-const": "error",
"eol-last": "error",
"prefer-arrow-callback": "error",
"no-trailing-spaces": "error",
"quotes": ["warn", "single", {"avoidEscape": true}],
"no-restricted-properties": [
"error",
{
"object": "describe",
"property": "only"
},
{
"object": "it",
"property": "only"
}
]
},
"overrides": [
{
"files": ["src/**/*.ts", "src/**/*.tsx"],
"parser": "@typescript-eslint/parser",
"extends": ["plugin:@typescript-eslint/recommended"],
"rules": {
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-use-before-define": "off",
"@typescript-eslint/no-warning-comments": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/camelcase": "off",
"node/no-missing-import": "off",
"node/no-empty-function": "off",
"node/no-unsupported-features/es-syntax": "off",
"node/no-missing-require": "off",
"node/shebang": "off",
"no-dupe-class-members": "off",
"require-atomic-updates": "off"
},
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
}
}
]
}
I'm also using typescript 5.0.3, don't know if it's relevant.
答案1
得分: 1
Ensure your tsconfig.json
文件包含 vitest.config.ts
:
{
"include": ["src/**/*.ts", "src/**/*.tsx", "vitest.config.ts"]
}
然后确保你的 .eslintrc.json
文件包含 vitest.config.ts
:
"overrides": [
{
"files": ["src/**/*.ts", "src/**/*.tsx", "vitest.config.ts"],
}
]
或者,编辑 .eslintrc.json
以配置默认解析器(而不是 overrides
解析器):
{
"parserOptions": {
"ecmaVersion": "2018",
"project": "./tsconfig.json",
"sourceType": "module"
}
}
如果仍然不起作用,尝试添加以下内容:
{
"ignorePatterns": ["!vitest.config.ts"]
}
你需要将它添加为配置的顶级键。
你没有说明错误是如何生成的。如果是命令行,则可以忽略下面的备注。但如果是在VSCode中直接生成的错误,请在更改后执行Developer: Reload Window以确保应用了更改。
英文:
Ensure your tsconfig.json
file includes vitest.config.ts
:
{
"include": ["src/**/*.ts", "src/**/*.tsx", "vitest.config.ts"]
}
Then ensure your .eslintrc.json
file includes vitest.config.ts
:
"overrides": [
{
"files": ["src/**/*.ts", "src/**/*.tsx", "vitest.config.ts"],
}
]
Alternatively, edit .eslintrc.json
to configure the default parser (instead of the overrides
parser):
{
"parserOptions": {
"ecmaVersion": "2018",
"project": "./tsconfig.json",
"sourceType": "module"
}
If that still doesn't work then try adding this:
{
"ignorePatterns": ["!vitest.config.ts"]
}
You need to add it as a top-level key in the config.
You don't say how you're generating the error. If it's command line then you can ignore this next remark. But if it's directly within VSCode then do Developer: Reload Window after the change to ensure it's applied.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论