spinjs
Version:
<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/spin.js/master/logo.svg"></a></p>
60 lines • 2.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var requireModule_1 = require("../requireModule");
var CssProcessorPlugin = (function () {
function CssProcessorPlugin() {
}
CssProcessorPlugin.prototype.configure = function (builder, spin) {
var stack = builder.stack;
var dev = spin.dev;
if (stack.hasAll('webpack')) {
var createRule = void 0;
var rules = [];
if (stack.hasAny('server')) {
createRule = function (prep, ext) { return ({
test: new RegExp("." + ext + "$"),
use: dev ? [
{ loader: 'isomorphic-style-loader' },
{ loader: 'css-loader', options: { sourceMap: true } },
{ loader: 'postcss-loader', options: { sourceMap: true } },
{ loader: prep + "-loader", options: { sourceMap: true } }
] :
[{ loader: 'ignore-loader' }],
}); };
}
else if (stack.hasAny('web')) {
var ExtractTextPlugin_1;
if (!dev) {
ExtractTextPlugin_1 = requireModule_1.default('extract-text-webpack-plugin');
builder.config.plugins.push(new ExtractTextPlugin_1({ filename: '[name].[contenthash].css', allChunks: true }));
}
createRule = function (prep, ext) { return ({
test: new RegExp("." + ext + "$"),
use: dev ? [
{ loader: 'style-loader' },
{ loader: 'css-loader', options: { sourceMap: true, importLoaders: 1 } },
{ loader: 'postcss-loader', options: { sourceMap: true } },
{ loader: prep + "-loader", options: { sourceMap: true } },
] : ExtractTextPlugin_1.extract({
fallback: 'style-loader',
use: ['css-loader', 'postcss-loader', prep + "-loader"],
}),
}); };
}
if (createRule && stack.hasAny('sass')) {
rules.push(createRule('sass', 'scss'));
}
if (createRule && stack.hasAny('less')) {
rules.push(createRule('less', 'less'));
}
builder.config = spin.merge(builder.config, {
module: {
rules: rules
}
});
}
};
return CssProcessorPlugin;
}());
exports.default = CssProcessorPlugin;
//# sourceMappingURL=CssProcessorPlugin.js.map