enforce either
module.exports
orexports
- ✒️ The
--fix
option on the command line can automatically fix some of the problems reported by this rule.
module.exports
and exports
are the same instance by default.
But those come to be different if one of them is modified.
module.exports = {
foo: 1
}
exports.bar = 2
In this case, exports.bar
will be lost since only the instance of module.exports
will be exported.
This rule enforces the export style.
If you use module.exports
, this rule disallows exports
.
If you use exports
, this rule disallows module.exports
.
You can select it by an option.
This rule has a string option.
{
"n/exports-style": [
"error",
"module.exports" or "exports",
{
"allowBatchAssign": false
}
]
}
"module.exports"
(default) requiresmodule.exports
and disallowsexports
."exports"
requiresexports
and disallowsmodule.exports
.allowBatchAssign
(default isfalse
) allowsmodule.exports = exports = obj
if this istrue
.
Examples of 👎 incorrect code for the "module.exports"
option:
/*eslint n/exports-style: ["error", "module.exports"]*/
exports.foo = 1
exports.bar = 2
Examples of 👍 correct code for the "module.exports"
option:
/*eslint n/exports-style: ["error", "module.exports"]*/
module.exports = {
foo: 1,
bar: 2
}
module.exports.baz = 3
Examples of 👎 incorrect code for the "exports"
option:
/*eslint n/exports-style: ["error", "exports"]*/
module.exports = {
foo: 1,
bar: 2
}
module.exports.baz = 3
Examples of 👍 correct code for the "exports"
option:
/*eslint n/exports-style: ["error", "exports"]*/
exports.foo = 1
exports.bar = 2
Examples of 👍 correct code for the "exports"
and {"allowBatchAssign": true}
option:
/*eslint n/exports-style: ["error", "exports", {"allowBatchAssign": true}]*/
// Allow `module.exports` in the same assignment expression as `exports`.
module.exports = exports = function foo() {
// do something.
}
exports.bar = 1