123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- const {resolve} = require('path');
- const HtmlWebpackPlugin = require('html-webpack-plugin');
- /**
- * HMR:一个模块发生变化,只打包一个
- * css文件支持热更新
- * js默认不支持 解决:修改js代码,单独处理非入口js文件
- * html默认不支持(由于只有一个html文件,不需要HMR功能),且默认不热更新 解决:entry加入index.html
- */
- module.exports = {
- entry : ['./src/js/index.js','./src/index.html'],
- output:{
- filename: 'js/built.js',
- path: resolve(__dirname,'build')
- },
- module:{
- rules:[
- //less
- {
- test:/\.less$/,
- use:['style-loader','css-loader','less-loader']
- },
- //css
- {
- test:/\.css$/,
- use:['style-loader','css-loader']
- },
- //图片
- {
- test: /\.(jpg|jpeg|png|gif)$/,
- loader: 'url-loader',
- options:{
- limit:8*1024,
- name:'[hash:10].[ext]',
- esModule:false,
- outputPath: 'imgs'
- },
- type:'javascript/auto'
- },
- //html
- {
- test:/\.html$/,
- loader: 'html-loader'
- },
- //其他
- {
- exclude:/\.(html|js|css|less|jpg|jpeg|png|gif)$/,
- loader:'file-loader',
- options:{
- name:'[hash:10].[ext]',
- esModule:false,
- outputPath: 'media'
- },
- type:'javascript/auto'
- }
- ]
- },
- plugins:[
- new HtmlWebpackPlugin({
- template:'./src/index.html'
- })
- ],
- mode: 'development',
- devServer:{
- contentBase:resolve(__dirname,'build'),
- compress:true,
- port:3000,
- open:true,
- hot:true
- },
- target: "web" //可以解决browserslist 导致 webpack-dev-server 的自动刷新失效
- }
|