UNPKG

casterly

Version:
65 lines (64 loc) 2.36 kB
"use strict"; 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;