1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| const path = require('path');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
module.exports = {
context: path.resolve(__dirname, '../../'),
output: {
publicPath: './',
path: path.resolve(__dirname, '../../dist'), // 打包后的文件存放的地方
filename: '[name].[hash:8].js'// 打包后输出文件的文件名
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
vue$: 'vue/dist/vue.esm.js',
'@': path.resolve('src')
}
},
module: {
rules: [
{
test: /(\.html|\.xml)$/,
use: [
{
loader: 'html-loader',
}
],
exclude: /node_modules/
},
{
test: /(\.jsx|\.js)$/,
use: {
loader: 'babel-loader',
options: {
presets: [
'env',
'react'
]
}
},
exclude: /node_modules/
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: "[name].[hash:7].[ext]",
publicPath: "./images/", // 打包后CSS引入的基础路径
outputPath: "images/" // 打包后输出目录
}
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'media/[name].[hash:7].[ext]'
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'fonts/[name].[hash:7].[ext]'
}
}
]
},
plugins: [
new OptimizeCSSAssetsPlugin({}),
],
}; |