Skip to content
← Back to rules

import/no-unassigned-import 可疑

它的作用

此规则旨在通过报告导入但未分配的模块来消除具有副作用的模块。

为什么这是个问题?

无论是 CommonJS 的 require 还是 ES 模块的 import 语法,都可能导入一个模块但不使用其结果。 这可以通过不将模块赋值给变量来显式实现。 这样做可能意味着以下任意一种情况:

  • 模块被导入但未使用
  • 模块具有副作用。具有副作用的模块,使得很难判断该模块是否真正被使用,或是否可以移除。 它也可能使测试或模拟应用程序的某些部分变得更加困难。

示例

此规则的 错误 代码示例:

js
import "should";
require("should");

此规则的 正确 代码示例:

js
import _ from "foo";
import _, { foo } from "foo";
import _, { foo as bar } from "foo";
const _ = require("foo");
const { foo } = require("foo");
const { foo: bar } = require("foo");
bar(require("foo"));

配置

此规则接受一个配置对象,包含以下属性:

allow

type: string[]

default: []

允许对特定模块进行未分配导入的 glob 模式列表。 例如: { "allow": ["**/*.css"] } 将允许任何以 .css 结尾的模块进行未分配导入。

如何使用

要通过配置文件或 CLI 启用 此规则,可以使用:

json
{
  "plugins": ["import"],
  "rules": {
    "import/no-unassigned-import": "error"
  }
}
bash
oxlint --deny import/no-unassigned-import --import-plugin

参考资料