75 lines
1.6 KiB
Markdown
75 lines
1.6 KiB
Markdown
|
# import/no-import-module-exports
|
||
|
|
||
|
Reports the use of import declarations with CommonJS exports in any module
|
||
|
except for the [main module](https://docs.npmjs.com/files/package.json#main).
|
||
|
|
||
|
If you have multiple entry points or are using `js:next` this rule includes an
|
||
|
`exceptions` option which you can use to exclude those files from the rule.
|
||
|
|
||
|
## Options
|
||
|
|
||
|
#### `exceptions`
|
||
|
- An array of globs. The rule will be omitted from any file that matches a glob
|
||
|
in the options array. For example, the following setting will omit the rule
|
||
|
in the `some-file.js` file.
|
||
|
|
||
|
```json
|
||
|
"import/no-import-module-exports": ["error", {
|
||
|
"exceptions": ["**/*/some-file.js"]
|
||
|
}]
|
||
|
```
|
||
|
|
||
|
## Rule Details
|
||
|
|
||
|
### Fail
|
||
|
|
||
|
```js
|
||
|
import { stuff } from 'starwars'
|
||
|
module.exports = thing
|
||
|
|
||
|
import * as allThings from 'starwars'
|
||
|
exports.bar = thing
|
||
|
|
||
|
import thing from 'other-thing'
|
||
|
exports.foo = bar
|
||
|
|
||
|
import thing from 'starwars'
|
||
|
const baz = module.exports = thing
|
||
|
console.log(baz)
|
||
|
```
|
||
|
|
||
|
### Pass
|
||
|
Given the following package.json:
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"main": "lib/index.js",
|
||
|
}
|
||
|
```
|
||
|
|
||
|
```js
|
||
|
import thing from 'other-thing'
|
||
|
export default thing
|
||
|
|
||
|
const thing = require('thing')
|
||
|
module.exports = thing
|
||
|
|
||
|
const thing = require('thing')
|
||
|
exports.foo = bar
|
||
|
|
||
|
import thing from 'otherthing'
|
||
|
console.log(thing.module.exports)
|
||
|
|
||
|
// in lib/index.js
|
||
|
import foo from 'path';
|
||
|
module.exports = foo;
|
||
|
|
||
|
// in some-file.js
|
||
|
// eslint import/no-import-module-exports: ["error", {"exceptions": ["**/*/some-file.js"]}]
|
||
|
import foo from 'path';
|
||
|
module.exports = foo;
|
||
|
```
|
||
|
|
||
|
### Further Reading
|
||
|
- [webpack issue #4039](https://github.com/webpack/webpack/issues/4039)
|