如何让 ESLint 识别全局导入变量并消除 'not defined' 警告?

作者站长头像
站长
· 阅读数 4

全局导入,不需要再写import...就可以使用,但是eslint显示.. not defined,这该怎么解决?如何让elint知道它们已经导入了并且是定义的?

// vite.config.js
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  test: {
    environment: "jsdom",
    globals: true,                    // <----
    setupFiles: "./testSetup.js",
  },
});
// testSetup.js
import "@testing-library/jest-dom/vitest";
// .eslintrc.cjs
module.exports = {
  root: true,
  env: { browser: true, es2020: true },
  extends: [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:react/jsx-runtime",
    "plugin:react-hooks/recommended",
    "plugin:testing-library/react",   
  ],
  ignorePatterns: ["dist", ".eslintrc.cjs"],
  parserOptions: { ecmaVersion: "latest", sourceType: "module" },
  settings: { react: { version: "18.2" } },
  plugins: ["react-refresh", "testing-library"],
  rules: {
    "react/jsx-no-target-blank": "off",
    "react-refresh/only-export-components": [
      "warn",
      { allowConstantExport: true },
    ],
  },
};

如何让 ESLint 识别全局导入变量并消除 'not defined' 警告?

回复
1个回答
avatar
test
2024-06-19

在 eslint 的 env 配置中,增加 jest: true 或者是 "mocha": true 这类配置看一下。如果不行的话,在 eslint 中使用 globals 配置来声明全局的变量。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容