批改状态:合格
老师批语:
var {resolve} =require('path');//引用html 插件var htmlWebpackPlugin = require("html-webpack-plugin");//引入打包css到独立文件的插件var miniCssExtractPlugin=require('mini-css-extract-plugin');//引入压缩css插件var cssMinimizerWebpackPlugin = require('css-minimizer-webpack-plugin');module.exports = {//打包开始的入口文件//可以是单个//entry:"./src/index.js",//也可以是多个(数组) 会打包在一个入口文件中//entry:["./src/index.js","./src/index2.js"]//还可以是对象模式 这时会生成多个入口文件main.js和index.jsentry: {index: "./src/index.js"},//打包后路径output: {//输出的入口文件名 单个入口//"filename":"main.js",//输出的入口文件名 多个入口"filename": "[name].js",//打包后的文件夹名"path": resolve(__dirname, 'dist')},plugins: [//使用html插件new htmlWebpackPlugin({//使用的html文件template: "./src/index.html",//输出的html文件名filename: "index.html",//可以 在输出的index.html 中引用指定js 对应entry 中的keychunks: ['index'],minify: {//移除空格collapseWhitespace: true,//移除注释removeComment: true},}),//创建 打包css到独立文件夹下的插件 对象new miniCssExtractPlugin({filename:'css/[name].css' //输出的css文件名,放置在dist/css目录下}),//创建 压缩css 对象new cssMinimizerWebpackPlugin()],module: {rules: [//处理css{// 正则表达式,表示.css后缀的文件test: /\.css$/,// 针对css文件使用的loader,注意有先后顺序,数组项越靠后越先执行use: [//css打包成独立文件{loader: miniCssExtractPlugin.loader} ,//css处理插件'css-loader',//css兼容性处理'postcss-loader']// use: ['style-loader','css-loader'] //style-loader类似打包到html中},//处理图片{test: /\.(png|jpg|jpeg|gif)$/,use: [{loader: 'url-loader',options: {// publicPath: './img/', //会在html的地址前加上这个outputPath: 'img/',limit: 1024 * 8,name:'[name][hash:8].[ext]',esModule: false}}],},// html加载图片{test:/\.(html)$/i,use:'html-withimg-loader', // 解析 html中的图片资源},//处理其他非js|json|html|css|less|scss|png|gif|jpg|jpeg文件{exclude: /\.(js|json|html|css|less|scss|png|gif|jpg|jpeg)$/,loader: 'file-loader',options: {outputPath: 'font/',publicPath: './font',name:'[name][hash:8].[ext]'}},//处理sass{// 正则表达式,表示.css后缀的文件test: /\.scss$/,// 针对css文件使用的loader,注意有先后顺序,数组项越靠后越先执行use: [//css打包成独立文件{loader: miniCssExtractPlugin.loader} ,//css处理插件'css-loader',//css兼容性处理'postcss-loader','sass-loader']// use: ['style-loader','css-loader'] //style-loader类似打包到html中},]},//默认打包方式 开发模式 | production 生产模式mode:'development',//服务器启动 npx webpack servedevServer: {port:8080,compress:true,open:true,hot:true},//生产模式打包时文件过大导致报错performance: {hints:'warning',//入口起点的最大体积maxEntrypointSize: 50000000,//生成文件的最大体积maxAssetSize: 30000000},//服务器启动后自动刷新target: "web",};
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号