spinjs
Version:
<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/spinjs/master/logo.svg"></a></p>
47 lines • 2.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var path = require("path");
var JSRuleFinder_1 = require("./shared/JSRuleFinder");
var ES6Plugin = (function () {
function ES6Plugin() {
}
ES6Plugin.prototype.configure = function (builder, spin) {
if (builder.stack.hasAll(['es6', 'webpack']) &&
(!builder.stack.hasAny('dll') || builder.stack.hasAny(['android', 'ios']))) {
if (builder.stack.hasAny('es6') && !builder.stack.hasAny('dll')) {
builder.config = spin.merge({
entry: {
index: ['babel-polyfill']
}
}, builder.config);
}
var jsRuleFinder = new JSRuleFinder_1.default(builder);
var jsRule = jsRuleFinder.findAndCreateJSRule();
jsRule.exclude = /node_modules/;
jsRule.use = {
loader: builder.require.probe('heroku-babel-loader') ? 'heroku-babel-loader' : 'babel-loader',
options: spin.merge({
babelrc: false,
cacheDirectory: builder.cache === false || (builder.cache === 'auto' && !spin.dev)
? false
: path.join(builder.cache === true ? '.cache' : builder.cache, 'babel-loader'),
compact: !spin.dev,
presets: [
'babel-preset-react',
['babel-preset-env', { modules: false }],
'babel-preset-stage-0'
].concat(spin.dev ? [] : [['babel-preset-minify', { mangle: false }]]),
plugins: [
'babel-plugin-transform-runtime',
'babel-plugin-transform-decorators-legacy',
'babel-plugin-transform-class-properties'
],
only: jsRuleFinder.extensions.map(function (ext) { return '*.' + ext; })
}, builder.babelConfig)
};
}
};
return ES6Plugin;
}());
exports.default = ES6Plugin;
//# sourceMappingURL=ES6Plugin.js.map