babel-plugin-transform-inline-imports-commonjs

2019-01-13 admin

babel-plugin-transform-inline-imports-commonjs是什么

什么是babel-plugin-transform-inline-imports-commonjs,A Babel transform that turns imports into lazily loaded commonjs requires

  • babel-plugin-transform-inline-imports-commonjs官网:官网
  • babel-plugin-transform-inline-imports-commonjs源码仓库:源码仓库
  • babel-plugin-transform-inline-imports-commonjs下载地址:点此下载 点此下载2

babel-plugin-transform-inline-imports-commonjs使用教程帮助文档

babel-plugin-transform-inline-imports-commonjs

This plugin should be used instead of babel-plugin-transform-es2015-modules-commonjs

Build Status

Installation

$ npm install babel-plugin-transform-inline-imports-commonjs

Details

This plugin transforms ES modules (import and export), into CommonJS require and module.exports. imports are transformed into lazily loaded memoized requires. So the require call is deferred until the imported identifier is referenced. This allows you to write idiomatic code without the performance costs of loading code up-front (I/O, parsing, and executing).

Transform example

Before:

import bigModule from 'big-module';

export default function(val) {
  return bigModule.doExpensiveThing(val);
}

After:

'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});

exports.default = function (val) {
  return (_bigModule || _bigModule2()).default.doExpensiveThing(val);
};

var _bigModule;

function _bigModule2() {
  return _bigModule = _interopRequireDefault(require('big-module'));
}

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

Usage

Configuration

The same settings that are available for babel-plugin-transform-es2015-modules-commonjs are available for babel-plugin-transform-inline-imports-commonjs:

// without options
{
  "plugins": ["transform-inline-imports-commonjs"]
}

// with options
{
  "plugins": [
    ["transform-inline-imports-commonjs", {
      "allowTopLevelThis": true,
      "strict": false,
      "loose": true
    }]
  ]
}

Additional settings

  • excludeModules:

    • An array of strings that correspond to module IDs that should not be “inline-import”'ed. For the config "excludeModules": ["atom"]:
    import {TextEditor} from 'atom'; // transforms to plain `require` with interop
    import foo from 'bar'; // transforms to inline import
    
  • excludeNodeBuiltins (default: false)

    • Do not apply “inline-imports” to Node builtin modules. These modules are usually already in the module cache, so there may be no need to lazily load them.
    import * as path from 'path'; // transforms to plain `require` with interop
    import foo from 'bar'; // transforms to inline import
    

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-50844.html

文章标题:babel-plugin-transform-inline-imports-commonjs

回到顶部