UNPKG

spinjs

Version:

[![Join the chat at https://gitter.im/sysgears/spinjs](https://badges.gitter.im/sysgears/spinjs.svg)](https://gitter.im/sysgears/spinjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![npm version](https://badge.fury.io/js/spi

46 lines 2.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = require("path"); var JSRuleFinder_1 = require("./shared/JSRuleFinder"); var UPFinder_1 = require("./shared/UPFinder"); var BabelPlugin = (function () { function BabelPlugin() { } BabelPlugin.prototype.configure = function (builder, spin) { if (builder.stack.hasAny(['babel', 'es6']) && builder.stack.hasAll(['webpack']) && (!builder.stack.hasAny('dll') || builder.stack.hasAny(['android', 'ios']))) { if (builder.stack.hasAny(['babel', 'es6']) && !builder.stack.hasAny('dll')) { var babelPkgJson = builder.require.probe('babel-core') && builder.require('babel-core/package.json'); var isBabel7 = builder.require.probe('@babel/core') && (!babelPkgJson || babelPkgJson.version.indexOf('bridge') >= 0); builder.config = spin.merge({ entry: { index: [isBabel7 ? '@babel/polyfill' : 'babel-polyfill'] } }, builder.config); } var jsRuleFinder = new JSRuleFinder_1.default(builder); var jsRule = jsRuleFinder.findAndCreateJSRule(); var cacheDirectory = builder.cache === false || (builder.cache === 'auto' && !spin.dev) ? false : path.join(builder.cache === true || (builder.cache === 'auto' && spin.dev) ? '.cache' : builder.cache, 'babel-loader'); var babelrc = new UPFinder_1.default(builder).find(['.babelrc', '.babelrc.js', 'babel.config.js']); jsRule.use = { loader: builder.require.probe('heroku-babel-loader') ? 'heroku-babel-loader' : 'babel-loader', options: !!babelrc ? { babelrc: true, cacheDirectory: cacheDirectory, rootMode: 'upward-optional' } : spin.createConfig(builder, 'babel', { babelrc: false, cacheDirectory: cacheDirectory, compact: !spin.dev, presets: ['react', ['env', { modules: false }], 'stage-0'].concat(spin.dev ? [] : [['minify', { mangle: false }]]), plugins: ['transform-runtime', 'transform-decorators-legacy', 'transform-class-properties'], only: jsRuleFinder.extensions.map(function (ext) { return '*.' + ext; }) }) }; } }; return BabelPlugin; }()); exports.default = BabelPlugin; //# sourceMappingURL=BabelPlugin.js.map