UNPKG

spinjs

Version:

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

39 lines (37 loc) 1.69 kB
import requireModule from '../requireModule'; import { ConfigPlugin } from '../ConfigPlugin'; import { Builder } from '../Builder'; import Spin from '../Spin'; import JSRuleFinder from './shared/JSRuleFinder'; export default class ES6Plugin implements ConfigPlugin { configure(builder: Builder, spin: Spin) { if (builder.stack.hasAll(['es6', 'webpack'])) { if (builder.stack.hasAny('es6') && !builder.stack.hasAny('dll')) { builder.config = spin.merge({ entry: { index: [requireModule.resolve('babel-polyfill')], }, }, builder.config); } const jsRuleFinder = new JSRuleFinder(builder); const jsRule = jsRuleFinder.rule; jsRule.exclude = /node_modules/; jsRule.use = { loader: requireModule.resolve('babel-loader'), options: { cacheDirectory: spin.dev, presets: [ requireModule.resolve('babel-preset-react'), [requireModule.resolve('babel-preset-es2015'), {'modules': false}], requireModule.resolve('babel-preset-stage-0')], plugins: [ requireModule.resolve('babel-plugin-transform-runtime'), requireModule.resolve('babel-plugin-transform-decorators-legacy'), requireModule.resolve('babel-plugin-transform-class-properties'), ], only: jsRuleFinder.extensions.map(ext => '*.' + ext), }, }; } } }