spinjs
Version:
<p align="center"><a href="#"><img width="150" src="https://rawgit.com/sysgears/jsapp/master/packages/spinjs/logo.svg"></a></p>
200 lines • 10.9 kB
JavaScript
;
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;
};
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
t[p[i]] = s[p[i]];
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
var postCssDefaultConfig = function (builder) {
return {
plugins: function () { return [
builder.require('autoprefixer')({
browsers: ['last 2 versions', 'ie >= 9']
})
]; }
};
};
var CssProcessorPlugin = (function () {
function CssProcessorPlugin() {
}
CssProcessorPlugin.prototype.configure = function (builder, spin) {
var stack = builder.stack;
var dev = spin.dev;
var loaderOptions = builder.sourceMap ? { sourceMap: true } : {};
if (stack.hasAll('webpack') && !stack.hasAny('dll')) {
var createRule = void 0;
var rules = [];
var postCssLoader_1 = builder.require.probe('postcss-loader') ? 'postcss-loader' : undefined;
var useDefaultPostCss_1 = builder.useDefaultPostCss || false;
var plugin_1;
if (stack.hasAny('server')) {
createRule = function (ext, nodeModules, ruleList) { return ({
test: nodeModules
? new RegExp("^.*\\/node_modules\\/.*\\." + ext + "$")
: new RegExp("^(?!.*\\/node_modules\\/).*\\." + ext + "$"),
use: [
{ loader: 'isomorphic-style-loader', options: spin.createConfig(builder, 'isomorphicStyle', {}) },
{ loader: 'css-loader', options: spin.createConfig(builder, 'css', __assign({}, loaderOptions)) }
]
.concat(postCssLoader_1 && !nodeModules
? {
loader: postCssLoader_1,
options: spin.createConfig(builder, 'postCss', useDefaultPostCss_1 ? __assign({}, postCssDefaultConfig(builder), loaderOptions) : __assign({}, loaderOptions))
}
: [])
.concat(ruleList)
}); };
}
else if (stack.hasAny('web')) {
var webpackVer = builder.require('webpack/package.json').version.split('.')[0];
if (webpackVer < 4) {
var ExtractCSSPlugin_1;
if (!dev) {
ExtractCSSPlugin_1 = builder.require('extract-text-webpack-plugin');
}
createRule = function (ext, nodeModules, ruleList) {
if (!dev && !plugin_1) {
plugin_1 = new ExtractCSSPlugin_1({ filename: "[name].[contenthash].css" });
}
return {
test: nodeModules
? new RegExp("^.*\\/node_modules\\/.*\\." + ext + "$")
: new RegExp("^(?!.*\\/node_modules\\/).*\\." + ext + "$"),
use: dev
? [
{ loader: 'style-loader', options: spin.createConfig(builder, 'style', {}) },
{
loader: 'css-loader',
options: spin.createConfig(builder, 'css', __assign({}, loaderOptions, { importLoaders: 1 }))
}
]
.concat(postCssLoader_1 && !nodeModules
? {
loader: postCssLoader_1,
options: spin.createConfig(builder, 'postCss', useDefaultPostCss_1
? __assign({}, postCssDefaultConfig(builder), loaderOptions) : __assign({}, loaderOptions))
}
: [])
.concat(ruleList)
: plugin_1.extract({
fallback: 'style-loader',
use: [
{
loader: 'css-loader',
options: spin.createConfig(builder, 'css', {
importLoaders: postCssLoader_1 && !nodeModules ? 1 : 0
})
}
]
.concat(postCssLoader_1 && !nodeModules
? {
loader: postCssLoader_1,
options: spin.createConfig(builder, 'postCss', useDefaultPostCss_1 ? postCssDefaultConfig(builder) : {})
}
: [])
.concat(ruleList
? ruleList.map(function (rule) {
var _a = rule.options, sourceMap = _a.sourceMap, options = __rest(_a, ["sourceMap"]);
return { loader: rule.loader, options: options };
})
: [])
})
};
};
}
else {
var ExtractCSSPlugin_2;
if (!dev) {
ExtractCSSPlugin_2 = builder.require('mini-css-extract-plugin');
}
createRule = function (ext, nodeModules, ruleList) {
if (!dev && !plugin_1) {
plugin_1 = new ExtractCSSPlugin_2({
chunkFilename: '[id].css',
filename: "[name].[contenthash].css"
});
}
return {
test: nodeModules
? new RegExp("^.*\\/node_modules\\/.*\\." + ext + "$")
: new RegExp("^(?!.*\\/node_modules\\/).*\\." + ext + "$"),
use: dev
? [
{ loader: 'style-loader', options: spin.createConfig(builder, 'style', {}) },
{
loader: 'css-loader',
options: spin.createConfig(builder, 'css', __assign({}, loaderOptions, { importLoaders: 1 }))
}
]
.concat(postCssLoader_1 && !nodeModules
? {
loader: postCssLoader_1,
options: spin.createConfig(builder, 'postCss', useDefaultPostCss_1
? __assign({}, postCssDefaultConfig(builder), loaderOptions) : __assign({}, loaderOptions))
}
: [])
.concat(ruleList)
: [
{ loader: ExtractCSSPlugin_2.loader, options: spin.createConfig(builder, 'mini-css-extract', {}) },
{
loader: 'css-loader',
options: spin.createConfig(builder, 'css', {
importLoaders: postCssLoader_1 && !nodeModules ? 1 : 0
})
}
]
.concat(postCssLoader_1 && !nodeModules
? {
loader: postCssLoader_1,
options: spin.createConfig(builder, 'postCss', useDefaultPostCss_1 ? postCssDefaultConfig(builder) : {})
}
: [])
.concat(ruleList
? ruleList.map(function (rule) {
var _a = rule.options, sourceMap = _a.sourceMap, options = __rest(_a, ["sourceMap"]);
return { loader: rule.loader, options: options };
})
: [])
};
};
}
}
if (createRule && stack.hasAny('css')) {
rules.push(createRule('css', false, []), createRule('css', true, []));
}
if (createRule && stack.hasAny('sass')) {
var sassRule = [{ loader: 'sass-loader', options: spin.createConfig(builder, 'sass', __assign({}, loaderOptions)) }];
rules.push(createRule('scss', false, sassRule), createRule('scss', true, sassRule));
}
if (createRule && stack.hasAny('less')) {
var lessLoaderVer = builder.require('less-loader/package.json').version.split('.')[0];
var options = lessLoaderVer >= 4 ? __assign({ javascriptEnabled: true }, loaderOptions) : __assign({}, loaderOptions);
var lessRule = [{ loader: 'less-loader', options: spin.createConfig(builder, 'less', options) }];
rules.push(createRule('less', false, lessRule), createRule('less', true, lessRule));
}
builder.config = spin.merge(builder.config, {
module: {
rules: rules
}
});
if (plugin_1) {
builder.config.plugins.push(plugin_1);
}
}
};
return CssProcessorPlugin;
}());
exports.default = CssProcessorPlugin;
//# sourceMappingURL=CssProcessorPlugin.js.map