spinjs
Version:
<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/spin.js/master/logo.svg"></a></p>
90 lines • 3.78 kB
JavaScript
"use strict";
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
var fs = require("fs");
var configRc_1 = require("./configRc");
var Stack_1 = require("./Stack");
var requireModule_1 = require("./requireModule");
var Spin_1 = require("./Spin");
var CssProcessorPlugin_1 = require("./plugins/CssProcessorPlugin");
var ES6Plugin_1 = require("./plugins/ES6Plugin");
var ApolloPlugin_1 = require("./plugins/ApolloPlugin");
var ReactNativePlugin_1 = require("./plugins/ReactNativePlugin");
var ReactNativeWebPlugin_1 = require("./plugins/ReactNativeWebPlugin");
var StyledComponentsPlugin_1 = require("./plugins/StyledComponentsPlugin");
var WebAssetsPlugin_1 = require("./plugins/WebAssetsPlugin");
var ReactPlugin_1 = require("./plugins/ReactPlugin");
var WebpackPlugin_1 = require("./plugins/WebpackPlugin");
var ReactHotLoaderPlugin_1 = require("./plugins/ReactHotLoaderPlugin");
var TypeScriptPlugin_1 = require("./plugins/TypeScriptPlugin");
var AngularPlugin_1 = require("./plugins/AngularPlugin");
var TCombPlugin_1 = require("./plugins/TCombPlugin");
var FlowRuntimePlugin_1 = require("./plugins/FlowRuntimePlugin");
var WEBPACK_OVERRIDES_NAME = 'webpack.overrides.js';
var createConfig = function (cmd) {
var builders = {};
var plugins = [
new WebpackPlugin_1.default(),
new WebAssetsPlugin_1.default(),
new CssProcessorPlugin_1.default(),
new ReactPlugin_1.default(),
new ApolloPlugin_1.default(),
new TypeScriptPlugin_1.default(),
new ES6Plugin_1.default(),
new ReactHotLoaderPlugin_1.default(),
new TCombPlugin_1.default(),
new FlowRuntimePlugin_1.default(),
new ReactNativePlugin_1.default(),
new ReactNativeWebPlugin_1.default(),
new StyledComponentsPlugin_1.default(),
new AngularPlugin_1.default(),
];
var config = new configRc_1.default(plugins);
var overridesConfig = config.options.overridesConfig || WEBPACK_OVERRIDES_NAME;
var overrides;
if (fs.existsSync(overridesConfig)) {
overrides = requireModule_1.default('./' + overridesConfig);
}
else {
overrides = {};
}
var spin = new Spin_1.default(cmd, config.builders, config.options, overrides.dependencyPlatforms || {});
for (var name in config.builders) {
var builder = config.builders[name];
var stack = builder.stack;
if (builder.enabled === false || builder.roles.indexOf(cmd) < 0) {
continue;
}
if (spin.options.webpackDll && !stack.hasAny('server')) {
var dllBuilder = __assign({}, builder);
dllBuilder.name = builder.name + 'Dll';
dllBuilder.parent = builder;
dllBuilder.stack = new Stack_1.default(dllBuilder.stack.technologies, 'dll');
builders[dllBuilder.name] = dllBuilder;
builder.child = dllBuilder;
}
builders[name] = builder;
}
var _loop_1 = function (name) {
var builder = builders[name];
config.plugins.forEach(function (plugin) { return plugin.configure(builder, spin); });
if (overrides[name]) {
builders[name].config = spin.mergeWithStrategy({
entry: 'replace',
}, builders[name].config, overrides[name]);
}
};
for (var name in builders) {
_loop_1(name);
}
return { builders: builders, options: spin.options };
};
exports.default = createConfig;
//# sourceMappingURL=createConfig.js.map