twreporter-react
Version:
React-Redux site for The Reporter Foundation in Taiwan
57 lines (43 loc) • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (loaders) {
if (!Array.isArray(loaders)) {
throw new Error('\n Specify your loaders as an array.\n Default is [\'style\', \'css\', \'sass\']\n ');
}
// We need to match user loaders in different formats:
// 'sass', 'sass-loader', 'sass?someParam' etc.
var getLoaderRegExp = function getLoaderRegExp(module) {
return new RegExp('^' + (0, _escapeRegexp2.default)(module) + '(?:-loader)?(?:\\?.*)?$');
};
var sassLoaderRegExp = getLoaderRegExp('sass');
var resolveUrlLoaderRegExp = getLoaderRegExp('resolve-url');
var sassLoader = loaders.find(function (loader) {
return sassLoaderRegExp.test(loader);
});
var resolveUrlLoader = loaders.find(function (loader) {
return resolveUrlLoaderRegExp.test(loader);
});
if (!sassLoader) {
throw new Error('\n I can\'t find \'sass-loader\'.\n Add it to array of loaders in .bootstraprc.\n ');
}
var sassLoaderQuery = sassLoader.split('?')[1];
// We need to check if user's loader already contains sourceMap param
// And if it's not there - inject it
var sassLoaderWithSourceMap = undefined;
if (sassLoaderQuery) {
sassLoaderWithSourceMap = sassLoaderQuery.includes('sourceMap') ? sassLoader : sassLoader + '&sourceMap';
} else {
sassLoaderWithSourceMap = sassLoader + '?sourceMap';
}
var sassLoaderIndex = loaders.indexOf(sassLoader);
loaders[sassLoaderIndex] = sassLoaderWithSourceMap;
if (!resolveUrlLoader) {
loaders.splice(sassLoaderIndex, 0, 'resolve-url');
}
return loaders;
};
var _escapeRegexp = require('escape-regexp');
var _escapeRegexp2 = _interopRequireDefault(_escapeRegexp);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }