UNPKG

kkt

Version:

Create React apps with no build configuration, Cli tool for creating react apps.

91 lines (88 loc) 3.23 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.getStyleLoaders = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _postcssNormalize = _interopRequireDefault(require("postcss-normalize")); var _postcssFlexbugsFixes = _interopRequireDefault(require("postcss-flexbugs-fixes")); var _postcssPresetEnv = _interopRequireDefault(require("postcss-preset-env")); var _path = require("./path"); // @ts-ignore // @ts-ignore /** * 方法来源 * https://github.com/facebook/create-react-app/blob/9673858a3715287c40aef9e800c431c7d45c05a2/packages/react-scripts/config/webpack.config.js#L118-L197 */ var getStyleLoaders = function getStyleLoaders(cssOptions) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var preProcessor = arguments.length > 2 ? arguments[2] : undefined; var loaders = []; if (options.isEnvDevelopment) { loaders.push(require.resolve('style-loader')); } if (options.isEnvProduction) { loaders.push({ // loader: MiniCssExtractPlugin.loader, loader: options.miniCssExtractPluginLoader, // css is located in `static/css`, use '../../' to locate index.html folder // in production `paths.publicUrlOrPath` can be a relative path options: _path.paths.publicUrlOrPath.startsWith('.') ? { publicPath: '../../' } : {} }); } loaders.push({ loader: require.resolve('css-loader'), options: cssOptions }); loaders.push({ // 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', config: false, plugins: [(0, _postcssFlexbugsFixes["default"])(), (0, _postcssPresetEnv["default"])({ autoprefixer: { flexbox: 'no-2009' }, stage: 3 }), // Adds PostCSS Normalize as the reset css with default options, // so that it honors browserslist config in package.json // which in turn let's users customize the target behavior as per their needs. (0, _postcssNormalize["default"])()] }, sourceMap: cssOptions.sourceMap } }); if (preProcessor) { loaders.push({ loader: require.resolve('resolve-url-loader'), options: { sourceMap: cssOptions.sourceMap, /** * Build load *module.less, shows resolve-url-loader warning * https://github.com/kktjs/kkt/issues/313 */ silent: true, root: _path.paths.appSrc } }); loaders.push({ loader: require.resolve(preProcessor), options: (0, _objectSpread2["default"])({ sourceMap: true }, options.preProcessorOptions) }); } return loaders; }; exports.getStyleLoaders = getStyleLoaders; //# sourceMappingURL=getStyleLoaders.js.map