UNPKG

@gdjiami/cli

Version:

CLI for build front end project.

59 lines (58 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var MiniCssExtractPlugin = require('mini-css-extract-plugin'); /** * @param environment 环境变量 * @param cssOption css-loader 的参数 * @param preProcessor 其他预处理器, 如sass */ exports.default = (function (environment, options, preProcessor, afterLoaders) { var NODE_ENV = environment.NODE_ENV, SOURCE_MAP = environment.SOURCE_MAP, PUBLIC_URL = environment.PUBLIC_URL; var isProduction = NODE_ENV === 'production'; var shouldUseRelativeAssetPaths = PUBLIC_URL === './' || PUBLIC_URL === '.'; var shouldUseSourceMap = SOURCE_MAP !== 'false'; var cssOption = options.cssOption, ie8 = options.ie8; var extract = isProduction || ie8; var loaders = tslib_1.__spreadArrays([ !extract && require.resolve('style-loader'), extract && { loader: MiniCssExtractPlugin.loader, options: { publicPath: shouldUseRelativeAssetPaths ? '../../' : undefined, }, } ], (afterLoaders || []), [ { loader: require.resolve('css-loader'), options: cssOption, }, { loader: require.resolve('postcss-loader'), options: { ident: 'postcss', plugins: function () { return [ require('postcss-flexbugs-fixes'), // 可以在package.json 中指定browserslist 选项,设置浏览器兼容列表 // see more infomation in https://github.com/csstools/postcss-preset-env require('postcss-preset-env')({ autoprefixer: { flexbox: 'no-2009', }, stage: 3, }), ]; }, sourceMap: isProduction && shouldUseSourceMap, }, }, ]).filter(Boolean); if (preProcessor) { loaders.push({ loader: require.resolve(preProcessor), options: { sourceMap: isProduction && shouldUseSourceMap, }, }); } return loaders; });