UNPKG

spinjs

Version:

<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/spin.js/master/logo.svg"></a></p>

32 lines (30 loc) 1.24 kB
import Spin from "../Spin"; import { ConfigPlugin } from "../ConfigPlugin"; import { Builder } from "../Builder"; import requireModule from '../requireModule'; import JSRuleFinder from './shared/JSRuleFinder'; export default class ReactHotLoaderPlugin implements ConfigPlugin { configure(builder: Builder, spin: Spin) { const stack = builder.stack; if (stack.hasAll(['react-hot-loader', 'webpack']) && spin.dev && !spin.test && !stack.hasAny('dll')) { builder.config = spin.mergeWithStrategy({ entry: 'prepend', }, builder.config, { entry: { index: [ requireModule.resolve('react-hot-loader/patch') ] } }); const jsRuleFinder = new JSRuleFinder(builder); const jsRule = jsRuleFinder.rule; const isBabelUsed = jsRule.use.loader && jsRule.use.loader.indexOf('babel') >= 0; jsRule.use = spin.merge(jsRule.use, { options: { plugins: [requireModule.resolve(isBabelUsed ? 'react-hot-loader/babel' : 'react-hot-loader/webpack')] } }) } } }