启用哪个规则以在 ESLint CLI 输出中抛出 "Module has no exported member"?
Which rule to enable to throw "Module has no exported member" in ESLint CLI Output?
每当我在重构时更改导出的成员名称时,我的编辑器(Visual Studio 代码)都会出现 Module "x" has no exported member "y"
。这非常方便,因为它可以帮助我了解导出的成员导入了哪些文件。但不幸的是,此错误仅针对当前打开的文件显示。
是的,我知道我可以重命名该符号,这应该会更改引用它的每个文件。但我不会在任何地方都使用 Visual Studio 代码,我不想依赖我的 IDE linter 来告诉我哪里需要解决问题。我也希望在 ESLint CLI 输出中启用此功能。就是为了和小编给我看的一样。
有关此错误在 VSCode:
中的详细信息,请参阅此屏幕截图
但是当我从终端 运行 我的项目中的 eslint CLI 工具时,当它应该抛出“模块没有导出成员”的错误时,我没有收到任何错误。我得到 errors/warnings 其他所有内容。这让我相信我在我的 .eslintrc.js
文件中缺少一个特定的 rule/setting 来启用它。
我的 .eslintrc.js
文件:
const { toPairs } = require("ramda")
const { alias } = require("./scripts/utils/getAlias")
module.exports = {
globals: {
__PATH_PREFIX__: true,
},
root: true,
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
"plugin:@typescript-eslint/recommended",
"eslint:recommended",
"plugin:react/recommended",
"airbnb",
"airbnb/hooks",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript",
"prettier",
"prettier/react",
],
parser: "@typescript-eslint/parser",
parserOptions: {
project: "./tsconfig.json",
},
ignorePatterns: [".eslintrc.js"],
plugins: ["react", "@typescript-eslint", "prettier"],
rules: {
"prettier/prettier": "error",
"react/jsx-filename-extension": [
"error",
{ extensions: [".js", ".jsx", ".ts", ".tsx", ".md", ".mdx"] },
],
"no-use-before-define": "off",
"@typescript-eslint/no-use-before-define": "error",
"react/jsx-props-no-spreading": "off",
"no-unused-vars": [
"error",
{
vars: "local",
args: "none",
},
],
"import/extensions": "off",
"import/no-extraneous-dependencies": ["error", { devDependencies: true }],
},
settings: {
"import/resolver": {
alias: {
map: toPairs(alias),
extensions: [".ts", ".tsx", ".js", ".jsx", ".json", ".md", ".mdx"],
},
},
},
}
所以我的问题是:此功能是特定于 VS Code 中的 TS Server 运行ning 还是我需要在我的 eslintrc 文件中启用一些 setting/rule 以便我可以进行奇偶校验同时具有终端输出和 VS 代码面板输出?
感谢您花时间阅读并回答我的问题!
解决方法是在.eslintrc.js文件中添加import/named
规则,并将值设为“error”:
{
rules: {
"import/named": "error",
},
}
每当我在重构时更改导出的成员名称时,我的编辑器(Visual Studio 代码)都会出现 Module "x" has no exported member "y"
。这非常方便,因为它可以帮助我了解导出的成员导入了哪些文件。但不幸的是,此错误仅针对当前打开的文件显示。
是的,我知道我可以重命名该符号,这应该会更改引用它的每个文件。但我不会在任何地方都使用 Visual Studio 代码,我不想依赖我的 IDE linter 来告诉我哪里需要解决问题。我也希望在 ESLint CLI 输出中启用此功能。就是为了和小编给我看的一样。
有关此错误在 VSCode:
中的详细信息,请参阅此屏幕截图但是当我从终端 运行 我的项目中的 eslint CLI 工具时,当它应该抛出“模块没有导出成员”的错误时,我没有收到任何错误。我得到 errors/warnings 其他所有内容。这让我相信我在我的 .eslintrc.js
文件中缺少一个特定的 rule/setting 来启用它。
我的 .eslintrc.js
文件:
const { toPairs } = require("ramda")
const { alias } = require("./scripts/utils/getAlias")
module.exports = {
globals: {
__PATH_PREFIX__: true,
},
root: true,
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
"plugin:@typescript-eslint/recommended",
"eslint:recommended",
"plugin:react/recommended",
"airbnb",
"airbnb/hooks",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript",
"prettier",
"prettier/react",
],
parser: "@typescript-eslint/parser",
parserOptions: {
project: "./tsconfig.json",
},
ignorePatterns: [".eslintrc.js"],
plugins: ["react", "@typescript-eslint", "prettier"],
rules: {
"prettier/prettier": "error",
"react/jsx-filename-extension": [
"error",
{ extensions: [".js", ".jsx", ".ts", ".tsx", ".md", ".mdx"] },
],
"no-use-before-define": "off",
"@typescript-eslint/no-use-before-define": "error",
"react/jsx-props-no-spreading": "off",
"no-unused-vars": [
"error",
{
vars: "local",
args: "none",
},
],
"import/extensions": "off",
"import/no-extraneous-dependencies": ["error", { devDependencies: true }],
},
settings: {
"import/resolver": {
alias: {
map: toPairs(alias),
extensions: [".ts", ".tsx", ".js", ".jsx", ".json", ".md", ".mdx"],
},
},
},
}
所以我的问题是:此功能是特定于 VS Code 中的 TS Server 运行ning 还是我需要在我的 eslintrc 文件中启用一些 setting/rule 以便我可以进行奇偶校验同时具有终端输出和 VS 代码面板输出?
感谢您花时间阅读并回答我的问题!
解决方法是在.eslintrc.js文件中添加import/named
规则,并将值设为“error”:
{
rules: {
"import/named": "error",
},
}