const path = require('path')const HtmlPlugin = require('html-webpack-plugin')var { CleanWebpackPlugin } = require('clean-webpack-plugin')const { resolve } = require('path')/* 创建 HtmlPlugin 对象 */const htmlPlugin = new HtmlPlugin({ template: './src/index.html', filename: './index.html'})module.exports = { /* 运行模式 */ mode: 'development', /* 调试工具 */ // devtool: 'eval-source-map', devtool: 'nosoures-source-map', /* 打包入口 */ entry: path.join(__dirname, './src/js/index.js'), /* 打包出口 */ output: { /* 打包后文件存放路径 */ path: path.join(__dirname, 'dist'), /* 打包后文件名 */ filename: 'js/bundle.js' }, /* 插件 */ plugins: [htmlPlugin, new CleanWebpackPlugin()], devServer: { /* 首次打包,自动打开浏览器 */ open: true, /* 实时打包主机地址 */ host: '127.0.0.1', /* 主机端口 */ port: 6060 }, /* 第三方模组 */ module: { /* 匹配规则 */ rules: [ /* css 样式文件 */ { test: /\.css$/, use: ['style-loader', 'css-loader'] }, /* scss 样式文件 */ { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] }, /* less 样式文件 */ { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] }, /* 图片路径 */ { test: /\.jpg|png|gif|jpeg|bmp$/, use: 'url-loader?limit=64000&outputPath=images' }, /* 高级 js 语法 */ { test: /\.js$/, use: 'babel-loader', exclude: '/node_modules/' }, ] }, /* 路径快捷 */ resolve: { alias: { /* @ 代替 src 文件夹 */ '@': path.join(__dirname, './src/') } }}