项目作者: motiz88

项目描述 :
Experimental Babel plugin to make advanced usage of react-loadable easier.
高级语言: JavaScript
项目地址: git://github.com/motiz88/babel-plugin-transform-react-loadable.git
创建时间: 2017-04-02T10:04:59Z
项目社区:https://github.com/motiz88/babel-plugin-transform-react-loadable

开源协议:MIT License

下载


Announcement

This plugin is now react-loadable/babel!


babel-plugin-transform-react-loadable

Greenkeeper badge
circle
npm
coverage

semantic release
js-semistandard-style
MIT License

Experimental Babel plugin to make advanced usage of react-loadable easier.

Examples

Please see the main react-loadable example as a reference.

Example 1 - server side rendering

In

  1. let LoadableMyComponent = Loadable({
  2. loader: () => import('./MyComponent'),
  3. LoadingComponent: MyLoadingComponent,
  4. });

Out

  1. let LoadableMyComponent = Loadable({
  2. loader: () => import('./MyComponent'),
  3. LoadingComponent: MyLoadingComponent,
  4. serverSideRequirePath: path.join(__dirname, './MyComponent'),
  5. });

Example 2 - Webpack synchronous loading support

To enable this transformation, pass the webpack: true option to the plugin (see below).

In

  1. let LoadableMyComponent = Loadable({
  2. loader: () => import('./MyComponent'),
  3. LoadingComponent: MyLoadingComponent,
  4. });

Out

  1. let LoadableMyComponent = Loadable({
  2. loader: () => import('./MyComponent'),
  3. LoadingComponent: MyLoadingComponent,
  4. serverSideRequirePath: path.join(__dirname, './MyComponent'),
  5. webpackRequireWeakId: () => require.resolveWeak('./MyComponent'),
  6. });

Installation

  1. $ npm install --save-dev babel-plugin-transform-react-loadable

Usage

.babelrc

  1. // without options
  2. {
  3. "plugins": ["transform-react-loadable"]
  4. }
  5. // with options
  6. {
  7. "plugins": [
  8. ["transform-react-loadable", {
  9. "server": true, // default
  10. "webpack": true
  11. }]
  12. ]
  13. }

Via CLI

  1. $ babel --plugins transform-react-loadable script.js

Via Node API

  1. require("babel-core").transform("code", {
  2. plugins: ["transform-react-loadable"]
  3. });