Skip to content
← Back to rules

node/no-exports-assign 风格

An auto-fix is available for this rule.

它做了什么

禁止对 exports 进行赋值。

为什么这是不好的?

直接使用 exports = {} 可能导致混淆并引发潜在错误,因为这会重新分配 exports 对象,可能破坏模块导出。更可预测且更清晰的做法是直接使用 module.exports,或与 exports 配合使用。

此规则旨在禁止 exports = {},但允许 module.exports = exports = {},以避免与 n/exports-style 规则的 allowBatchAssign 选项发生冲突。

示例

此规则的错误代码示例:

js
exports = {};

此规则的正确代码示例:

js
module.exports.foo = 1;
exports.bar = 2;
module.exports = {};

// 如果同时使用 `module.exports =`,则允许 `exports = {}`
module.exports = exports = {};
exports = module.exports = {};

如何使用

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

json
{
  "plugins": ["node"],
  "rules": {
    "node/no-exports-assign": "error"
  }
}
bash
oxlint --deny node/no-exports-assign --node-plugin

参考资料