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
| let path = require('path') // 解析js插入到html文档中 let HtmlWebpackPlugin = require('html-webpack-plugin') // 解析css以link方式插入到html中 let MiniCssExtractPlugin = require('mini-css-extract-plugin')
module.exports = { devServer: { // 开发服务器配置 port: 3000, // 端口号 progress: true, // 进度条 contentBase: './dist' // 服务器启动的目录 }, mode: 'production', // 模式:默认两种 production development entry: './src/index.js', // 入口 output: { filename: 'bundle.js', // 打包后的文件名,bundle.[hash:8].js 生成hash戳,:8hash戳的长度 path: path.resolve(__dirname, 'dist') // 路径必须是一个绝对路径 }, plugins: [ // webpack的所有插件 new HtmlWebpackPlugin({ template: './public/index.html', // 原路径 filename: 'index.html', // 生成的文件名 hash: true, // 是否加上hash戳 minify: { removeAttributeQuotes: true, // 去除html的双引号 collapseWhitespace: true // 折叠空行 } }), new MiniCssExtractPlugin({ filename: 'main.css' // 抽离css的样式名称 }) ], module: { // 模块 rules: [ // 规则 loader是有顺序的:默认从右向左执行 // css-loader 解析 @import语法 // style-loader 把css插入到head标签中 { test: /\.css$/, use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader'], include: path.resolve(__dirname, 'src'), exclude: '/node_modules/' } ] } }
|
评论加载中