@babel/helper-module-imports
- npm
- Yarn
- pnpm
npm install @babel/helper-module-imports --save
yarn add @babel/helper-module-imports
pnpm add @babel/helper-module-imports
用法
import "source"
JavaScript
import { addSideEffect } from "@babel/helper-module-imports";
addSideEffect(path, 'source');
import { named as _named } from "source"
JavaScript
import { addNamed } from "@babel/helper-module-imports";
// if the hintedName isn't set, the function will gennerate a uuid as hintedName itself such as '_named'
addNamed(path, 'named', 'source');
import { named as _hintedName } from "source"
JavaScript
import { addNamed } from "@babel/helper-module-imports";
addNamed(path, 'named', 'source', { nameHint: "hintedName" });
import _default from "source"
JavaScript
import { addDefault } from "@babel/helper-module-imports";
addDefault(path, 'source');
import _hintedName from "source"
JavaScript
import { addDefault } from "@babel/helper-module-imports";
// If 'hintedName' exists in scope, the name will be '_hintedName2', '_hintedName3', ...
addDefault(path, 'source', { nameHint: "hintedName" })
import * as _namespace from "source"
JavaScript
import { addNamespace } from "@babel/helper-module-imports";
addNamespace(path, 'source');
示例
添加命名导入
JavaScript
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);
}
},
};
}