babel-plugin-import-expander

Expand multiple members `import` to specific module `import`

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
babel-plugin-import-expander
100.3.04 years ago6 years agoMinified + gzip package size for babel-plugin-import-expander in KB

Readme

babel-plugin-import-expander
Build Status npm version
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}'
    }
  }],
});