0.3.0 • Published 6 years ago
babel-plugin-import-expander v0.3.0
babel-plugin-import-expander
Expand multiple members import
to specific module import
, mainly for performance concerns.
Example
In
import { A, B, C as D } from '../components';
Out
import A from '../components/A/A';
import B from '../components/B/B';
import D from '../components/C/C';
Installation
$ npm install babel-plugin-import-expander --save-dev
Usage
Via .babelrc
(Recommended)
{
"plugins": [
["import-expander", {
"rules": {
"condition": "^(\\.|\\/).*\\/components$",
"template": "{source}/{name}/{name}"
}
}]
]
}
rules
Options can be one object or a list of objects, each object has two properties:
condition
One or multiple string format regular expressions, if the source of ImportDeclaration matches any of them, it will be replaced by the following
template
.template
Used to replace hit source with a simple variable placeholder presentation. There are mainly two variable placeholders:
{source}
represents the source of ImportDeclaration, and{name}
represents imported name.
Via Node API
require('babel-core').transform('code', {
plugins: ['import-expander', {
rules: {
condition: '^(\\.|\\/).*\\/components$',
template: '{source}/{name}/{name}'
}
}],
});