webpack4.x 如何配置webpack4.x 删除指定目录、配置devServer开发服务器、热更新等 第四节

冷不防 2022-05-28 12:40 358阅读 0赞

如何每次生成dist目录前先删除dist目录

有朋友反映每次手动删除dist目录太麻烦了,能不能使用命令删除呢?答案是有的.

我们需要再安装一个模块 clean-webpack-plugin,用来删除某些东西(清除)

1.安装clean-webpack-plugin

  1. cnpm i clean-webpack-plugin -D

2.在webpack.config.js中引入

  1. const CleanWebpackPlugin = require('clean-webpack-plugin');

3.在plugins中配置

  1. //webpack.config.js const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CleanWebpackPlugin = require('clean-webpack-plugin'); module.exports = { entry:{ index: './src/index.js', index2: './src/index2.js' }, output:{ path:path.resolve(__dirname,'dist'), //filename前面我们可以使用一个变量[name],这个就表示获取entry里面的key作为文件名加在前面 //打出来是index-bundle.js //和index2-bundle.js filename:'[name]-bundle.js' }, plugins:[ new CleanWebpackPlugin(['dist']), //传入数组,指定要删除的目录 new HtmlWebpackPlugin({ chunks:['index'], filename:'index.html', minify:{ collapseWhitespace:true //折叠空白区域 也就是压缩代码 }, hash:true, title:'I love China', template: './src/index.html' //模板地址 }) ] }

devServer:如何配置开发环境服务器

作用:

自动拉起浏览器,配置端口等,代码改变自动刷新

1.安装webpack-dev-server

  1. cnpm i webpack-dev-server -D

2.使用,插件需要引入,这个不需要引入,直接用就可以了

  1. const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CleanWebpackPlugin = require('clean-webpack-plugin'); module.exports = { entry:{ index: './src/index.js', index2: './src/index2.js' }, output:{ path:path.resolve(__dirname,'dist'), //filename前面我们可以使用一个变量[name],这个就表示获取entry里面的key作为文件名加在前面 //打出来是index-bundle.js //和index2-bundle.js filename:'[name]-bundle.js' }, devServer:{ // 设置服务器访问的基本目录 contentBase:path.resolve(__dirname,'dist'), //最好设置成绝对路径 // 设置服务器的ip地址,可以是localhost host:'localhost', // 设置端口 port:8090, // 设置自动拉起浏览器 open:true }, plugins:[ new CleanWebpackPlugin(['dist']), //传入数组,指定要删除的目录 new HtmlWebpackPlugin({ chunks:['index'], filename:'index.html', minify:{ collapseWhitespace:true //折叠空白区域 也就是压缩代码 }, hash:true, title:'I love China', template: './src/index.html' //模板地址 }) ] }

3.配置package.json,在script中增加”dev”: “webpack-dev-server —mode development”

  1. { "name": "webpack4", "version": "1.0.0", "description": "", "main": "webpack.config.js", "scripts": { "build": "webpack --mode development", "dev": "webpack-dev-server --mode development" }, "author": "", "license": "ISC", "devDependencies": { "clean-webpack-plugin": "^0.1.19", "html-webpack-plugin": "^3.2.0", "webpack": "^4.1.0", "webpack-cli": "^2.0.14", "webpack-dev-server": "^3.1.1" } }

这时运行 npm run dev,就可以了


如何配置热更新

1.在webpack.config.js中引入webpack

  1. const Webpack = require('webpack');

2.在webpack.config.js的devServer中增加一个hot:true配置

  1. devServer:{ // 设置服务器访问的基本目录 contentBase:path.resolve(__dirname,'dist'), //最好设置成绝对路径 // 设置服务器的ip地址,可以是localhost host:'localhost', // 设置端口 port:8090, // 设置自动拉起浏览器 open:true, // 设置热更新 hot:true },

3.在plugins中配置new Webpack.HotModuleReplacementPlugin(),

  1. const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CleanWebpackPlugin = require('clean-webpack-plugin'); const Webpack = require('webpack'); module.exports = { entry:{ index: './src/index.js', index2: './src/index2.js' }, output:{ path:path.resolve(__dirname,'dist'), //filename前面我们可以使用一个变量[name],这个就表示获取entry里面的key作为文件名加在前面 //打出来是index-bundle.js //和index2-bundle.js filename:'[name]-bundle.js' }, devServer:{ // 设置服务器访问的基本目录 contentBase:path.resolve(__dirname,'dist'), //最好设置成绝对路径 // 设置服务器的ip地址,可以是localhost host:'localhost', // 设置端口 port:8090, // 设置自动拉起浏览器 open:true, // 设置热更新 hot:true }, plugins:[ new Webpack.HotModuleReplacementPlugin(), //调用webpack的热更新插件 new CleanWebpackPlugin(['dist']), //传入数组,指定要删除的目录 new HtmlWebpackPlugin({ chunks:['index'], filename:'index.html', minify:{ collapseWhitespace:true //折叠空白区域 也就是压缩代码 }, hash:true, title:'I love China', template: './src/index.html' //模板地址 }) ] }

发表评论

表情:
评论列表 (有 0 条评论,358人围观)

还没有评论,来说两句吧...

相关阅读

    相关 webpack4.x 第二

    webpack4.x 打包初体验 在根目录下建一个src(源码)目录 在建一个dist(打包后)目录 在src下建一个入口文件,index.js // in