babel-plugin-replace-dynamic-import-runtime

v1.0.2
Babel plugin to replace import() with require() at runtime, for node Edit
babel babel-plugin webpack code-splitting node

Replace dynamic import() with require() at runtime

babel-plugin-replace-dynamic-import-runtime

Babel plugin to replace import(...) with require(...) at runtime, for node (also works with await import(...))

Use case

This has a very narrow use case: when you want to parse the same file for both browser and node (using babel/webpack) and still be able to use webpack's code splitting ability.

This is basically a utility to help reduce code duplication.

So statements like:

...
const someDynamicImport = import('../path/to/your/module');
...

into a require statement that node can understand:

const someDynamicImport = require('../path/to/your/module');

NOTE: Babylon >= v6.12.0 is required to correct parse dynamic imports.

Installation

yarn add babel-plugin-replace-dynamic-import-runtime --dev

Usage

Via .babelrc (Recommended)

.babelrc

{
  "plugins": ["replace-dynamic-import-runtime"]
}

Via CLI

$ babel --plugins replace-dynamic-import-runtime script.js

Via Node API

require('babel-core').transform('code', {
  plugins: ['replace-dynamic-import-runtime']
});
npm i babel-plugin-replace-dynamic-import-runtime

Metadata

  • MIT
  • Whatever
  • Raul Glogovetan
  • released 10/11/2017

Downloads

Maintainers