78 lines
1.5 KiB
Markdown
78 lines
1.5 KiB
Markdown
# @babel/helper-module-imports
|
|
|
|
## Installation
|
|
|
|
```sh
|
|
npm install @babel/helper-module-imports --save
|
|
```
|
|
|
|
## Usage
|
|
|
|
### `import "source"`
|
|
|
|
```js
|
|
import { addSideEffect } from "@babel/helper-module-imports";
|
|
addSideEffect(path, 'source');
|
|
```
|
|
|
|
### `import { named } from "source"`
|
|
|
|
```js
|
|
import { addNamed } from "@babel/helper-module-imports";
|
|
addNamed(path, 'named', 'source');
|
|
```
|
|
|
|
### `import { named as _hintedName } from "source"`
|
|
|
|
```js
|
|
import { addNamed } from "@babel/helper-module-imports";
|
|
addNamed(path, 'named', 'source', { nameHint: "hintedName" });
|
|
```
|
|
|
|
### `import _default from "source"`
|
|
|
|
```js
|
|
import { addDefault } from "@babel/helper-module-imports";
|
|
addDefault(path, 'source');
|
|
```
|
|
|
|
### `import hintedName from "source"`
|
|
|
|
```js
|
|
import { addDefault } from "@babel/helper-module-imports";
|
|
addDefault(path, 'source', { nameHint: "hintedName" })
|
|
```
|
|
|
|
### `import * as _namespace from "source"`
|
|
|
|
```js
|
|
import { addNamespace } from "@babel/helper-module-imports";
|
|
addNamespace(path, 'source');
|
|
```
|
|
|
|
## Examples
|
|
|
|
### Adding a named import
|
|
|
|
```js
|
|
import { addNamed } from "@babel/helper-module-imports";
|
|
|
|
export default function({ types: t }) {
|
|
return {
|
|
visitor: {
|
|
ReferencedIdentifier(path) {
|
|
let importName = this.importName;
|
|
if (importName) {
|
|
importName = t.cloneDeep(importName);
|
|
} else {
|
|
// require('bluebird').coroutine
|
|
importName = this.importName = addNamed(path, 'coroutine', 'bluebird');
|
|
}
|
|
|
|
path.replaceWith(importName);
|
|
}
|
|
},
|
|
};
|
|
}
|
|
```
|