Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/airbnb/babel-plugin-dynamic-import-node
Babel plugin to transpile import() to a deferred require(), for node
https://github.com/airbnb/babel-plugin-dynamic-import-node
Last synced: about 4 hours ago
JSON representation
Babel plugin to transpile import() to a deferred require(), for node
- Host: GitHub
- URL: https://github.com/airbnb/babel-plugin-dynamic-import-node
- Owner: airbnb
- License: mit
- Created: 2016-10-26T18:50:00.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-03-04T01:43:36.000Z (almost 2 years ago)
- Last Synced: 2024-11-20T21:20:58.880Z (22 days ago)
- Language: JavaScript
- Homepage:
- Size: 110 KB
- Stars: 575
- Watchers: 38
- Forks: 66
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - babel-plugin-dynamic-import-node
- awesome-f2e-libs - **babel-plugin-dynamic-import-node** - 有些场景下会需要禁用 `import()` 语法。 (babel / 非 JavaScript 编译工具)
- awesome-fe - **babel-plugin-dynamic-import-node** - 有些场景下会需要禁用 `import()` 语法。 (babel / 非 JavaScript 编译工具)
README
# babel-plugin-dynamic-import-node
Babel plugin to transpile `import()` to a deferred `require()`, for node. Matches the [proposed spec](https://github.com/domenic/proposal-import-function).
**NOTE:** Babylon >= v6.12.0 is required to correctly parse dynamic imports.
**NOTE:** This plugin generates code compatible with Node.js. Webpack >= 2 supports `import()` natively, and for Webpack 1 you can use [`babel-plugin-dynamic-import-webpack`](https://github.com/airbnb/babel-plugin-dynamic-import-webpack) that generates Webpack-compatible output.
## Installation
```sh
npm install babel-plugin-dynamic-import-node --save-dev
```## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"plugins": ["dynamic-import-node"]
}
```#### Options
- *`noInterop`* - A boolean value, that if true will not interop the require calls. Useful to avoid using `require('module').default` on commonjs modules.
```json
{
"plugins": [
["dynamic-import-node", { "noInterop": true }]
]
}
```### Via CLI
```sh
$ babel --plugins dynamic-import-node script.js
```### Via Node API
```javascript
require('babel-core').transform('code', {
plugins: ['dynamic-import-node']
});
```### Code Example
```javascript
Promise.all([
import('./lib/import1'),
import('./lib/import2')
]).then(([
Import1,
Import2
]) => {
console.log(Import1);
/* CODE HERE*/
});
```