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;
							 | 
						||
| 
								 | 
							
								};
							 |