61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
module.exports = function fileRules({ cssSandbox = false, chunk='' } = {}) {
 | 
						|
 | 
						|
    const postcssLoader = cssSandbox ? {
 | 
						|
        loader: 'postcss-loader',
 | 
						|
        options: {
 | 
						|
            postcssOptions: {
 | 
						|
                plugins: [
 | 
						|
                    require('postcss-prefix-selector')({
 | 
						|
                      prefix: '.' + chunk.split('/').join('_') , // 需要动态设置
 | 
						|
                    }),
 | 
						|
                  ]
 | 
						|
            },
 | 
						|
        }
 | 
						|
    }: 'postcss-loader';
 | 
						|
 | 
						|
    const rules = [
 | 
						|
        {
 | 
						|
            test: /\.js[x]?$/,
 | 
						|
            exclude: /node_modules/,
 | 
						|
            use: [
 | 
						|
                {
 | 
						|
                    loader: 'babel-loader'
 | 
						|
                }
 | 
						|
            ]
 | 
						|
        },
 | 
						|
        {
 | 
						|
            test: /\.css$/,
 | 
						|
            // use: ExtractTextPlugin.extract({
 | 
						|
            use: [
 | 
						|
                'style-loader', 
 | 
						|
                'css-loader', 
 | 
						|
                postcssLoader
 | 
						|
            ]
 | 
						|
            // 	fallback: 'style-loader'
 | 
						|
            // })
 | 
						|
        },
 | 
						|
        {
 | 
						|
            test: /\.less$/,
 | 
						|
            // use: ExtractTextPlugin.extract({
 | 
						|
            use: [
 | 
						|
                'style-loader', 
 | 
						|
                'css-loader', 
 | 
						|
                postcssLoader,
 | 
						|
                'less-loader'
 | 
						|
            ]
 | 
						|
            // fallback: 'style-loader'
 | 
						|
            // })
 | 
						|
        },
 | 
						|
        {
 | 
						|
            test: /\.(png|jpg|jpeg|gif|eot|ttf|woff|woff2|svg|svgz|ico|xlsx)(\?.+)?$/,
 | 
						|
            exclude: /favicon\.png$/,
 | 
						|
            use: [
 | 
						|
                {
 | 
						|
                    loader: 'url-loader'
 | 
						|
                }
 | 
						|
            ]
 | 
						|
        }
 | 
						|
    ];
 | 
						|
 | 
						|
	return rules;
 | 
						|
}; |