Skip to content

node/no-exports-assign Style

🛠️ An auto-fix is available for this rule.

What it does

Disallows assignment to exports.

Why is this bad?

Directly using exports = {} can lead to confusion and potential bugs because it reassigns the exports object, which may break module exports. It is more predictable and clearer to use module.exports directly or in conjunction with exports.

This rule is aimed at disallowing exports = {}, but allows module.exports = exports = {} to avoid conflict with n/exports-style rule's allowBatchAssign option.

Examples

Examples of incorrect code for this rule:

js
exports = {};

Examples of correct code for this rule:

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

// allows `exports = {}` if along with `module.exports =`
module.exports = exports = {};
exports = module.exports = {};

References

Released under the MIT License.