casterly
Version:
CLI for Casterly
65 lines (64 loc) • 2.36 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStyleLoaders = exports.sassRegex = exports.sassGlobalRegex = exports.cssRegex = exports.cssGlobalRegex = void 0;
// @ts-ignore
const mini_css_extract_plugin_1 = __importDefault(require("mini-css-extract-plugin"));
// style files regexes
exports.cssGlobalRegex = /\.global\.css$/;
exports.cssRegex = /\.css$/;
exports.sassGlobalRegex = /\.global\.(scss|sass)$/;
exports.sassRegex = /\.(scss|sass)$/;
// common function to get style loaders
const getStyleLoaders = ({ isServer = false, dev = false, cssModules = false, loaders = [], postcssPlugins, }) => {
const postcssLoader = {
// Options for PostCSS as we reference these options twice
// Adds vendor prefixing based on your specified browser support in
// package.json
loader: require.resolve('postcss-loader'),
options: {
postcssOptions: {
// Necessary for external CSS imports to work
// https://github.com/facebook/create-react-app/issues/2677
ident: 'postcss',
map: {
inline: false,
annotate: false,
},
config: false,
plugins: postcssPlugins,
},
},
};
const cssLoader = {
loader: require.resolve('css-loader'),
options: {
importLoaders: 1 + loaders.length,
modules: cssModules
? {
auto: /.*/,
localIdentName: dev ? '[path][name]__[local]' : '[hash:base64]',
localIdentHashPrefix: 'css',
exportOnlyLocals: isServer,
}
: false,
},
};
if (isServer && !cssModules) {
return ['ignore-loader'];
}
return [
!isServer && {
loader: mini_css_extract_plugin_1.default.loader,
options: {
modules: cssModules ? { namedExport: false } : undefined,
},
},
cssLoader,
postcssLoader,
...loaders,
].filter(Boolean);
};
exports.getStyleLoaders = getStyleLoaders;
;