//webpack全局配置
const path = require('path');
module.exports = function(env, argv) {
	// env是在package中运行的命令是配置
	env = env || {};
	return {
		entry: './src/main.js', //入口文件
		module: {
			rules: [
				// 处理css
				{
					test: /\.css$/i,
					use: ['vue-style-loader', 'css-loader']
				},
				// 处理vue
				{
					test: /\.vue$/i,
					use: 'vue-loader'
				},
				// 处理less
				{
					test: /\.less$/i,
					use: ['vue-style-loader', 'css-loader', 'less-loader']
				},
				// 小图片转为base64
				{
					test: /\.(png|jpg|gif)$/i,
					use: [{
						loader: 'url-loader',
						options: {
							limit: 10000
						}
					}]
				},
				// 处理es6
				{
					test: /\.(js)$/i,
					exclude: /node_modules/,
					use: {
						loader: 'babel-loader',
						options: {
							presets: ['@babel/preset-env']
						}
					}
				},
				// 多媒体文件
				{
					test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
					loader: 'url-loader',
					options: {
						limit: 10000,
					}
				},
				// 处理字体
				{
					test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
					loader: 'url-loader',
					options: {
						limit: 10000,
					}
				},
				//处理文件
				{
					test: /\.svg$/,
					use: 'file-loader'
				}
			]
		},
		resolve: {
			extensions: ['.js', '.vue', '.json'],
			alias: {
				'vue': 'vue/dist/vue.esm',
				'@': path.resolve(__dirname, 'src')
			}
		},
		...(env.development ? require('./config/webpack.development') : require('./config/webpack.production'))
	}
}