webpack4从0开始构建前端单页项目(15)用clean-webpack-plugin清理构建前的目录(dist)
clean-webpack-plugin 这个插件用来清空打包后的 dist 目录下的文件。可以避免每次打包前手动删除构建目录(dist)下的文件。
安装 clean-webpack-plugin
cnpm i clean-webpack-plugin -D
依赖的模块(package.json)
"devDependencies": {
"@babel/core": "^7.11.6",
"@babel/preset-env": "^7.11.5",
"babel-loader": "^8.1.0",
"clean-webpack-plugin": "^3.0.0",
"css-loader": "^4.3.0",
"css-minimizer-webpack-plugin": "^1.1.5",
"html-webpack-plugin": "^4.5.0",
"mini-css-extract-plugin": "^0.11.3",
"postcss-loader": "^4.0.3",
"webpack": "^4.44.2",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.0"
},
配置 css-minimizer-webpack-plugin
\\ webpack.config.js
const webpack = require("webpack");
const path = require("path");
const htmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
module.exports = {
entry: "./src/main.js",
mode: "development",
output: {
path: path.join(__dirname, "dist"),
filename: "app.[hash:16].js",
},
plugins: [
new MiniCssExtractPlugin({
filename: "[name].css",
ignoreOrder: false,
}),
new htmlWebpackPlugin({
filename: "index.html",
template: "./public/index.html",
minify: {
collapseWhitespace: true,
html5: true,
preserveLineBreaks: false,
minifyCSS: true,
minifyJS: true,
removeComments: false,
},
inject: true,
}),
new CleanWebpackPlugin(), // 使用 CleanWebpackPlugin
],
devServer: {
contentBase: path.join(__dirname, "dist"),
compress: true,
port: 9000, // 配置端口
hot: true,
},
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: "babel-loader",
},
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
"postcss-loader",
],
},
],
},
};
一定要使用 const { CleanWebpackPlugin } = require("clean-webpack-plugin");
看了下源码,-----
clean-webpack-plugin 参考: https://github.com/johnagan/clean-webpack-plugin
webpack4从0开始构建前端单页项目(15)用clean-webpack-plugin清理构建前的目录(dist)的更多相关文章
- webpack入门级 - 从0开始搭建单页项目配置
前言 webpack 作为前端最知名的打包工具,能够把散落的模块打包成一个完整的应用,大多数的知名框架 cli 都是基于 webpack 来编写.这些 cli 为使用者预设好各种处理配置,使用多了就会 ...
- 前端单页应用SEO解决方案
在这里只会提到Google的解决方案,日后再补充百度的解决方案 我们经常使用的单页都是#!来做应用的前端路由,因为这个在多个版本浏览器上有很好的兼容性 当Google发现URL里有#!符号,Googl ...
- Vue之vue自动化工具快速搭建单页项目目录
1 生成项目目录 使用vue自动化工具可以快速搭建单页应用项目目录. 该工具为现代化的前端开发工作流提供了开箱即用的构建配置.只需几分钟即可创建并启动一个带热重载.保存时静态检查以及可用于生产环境的构 ...
- 使用http://start.spring.io/构建maven微服务项目的几个坑及eclipse构建spring boot微服务项目
一,使用http://start.spring.io/构建maven微服务项目 本来嘛,直接构建的项目导入时没有任何问题的导入就可以运行,可是最近构建好项目,然后导入,种种报错 1.导入之后POM报错 ...
- 使用百度fis3构建前端多页应用
吾日三省吾身. 从一个完全不相干的行业转到IT,多多少少都会感到迷茫,不知道学习什么.从何学起?在几乎没有任何经验的背景下,坚持投递简历,最后终于进入了一个创业公司,开始做起了前端工作.工资勉强维持生 ...
- vue-router+webpack线上部署时单页项目路由,刷新页面出现404问题
使用vue项目,线上部署的时候,访问首页以及通过路由打开二级页面没有问题,但是一刷新就出现404现象 因为刷新页面时访问的资源在服务端找不到,因为vue-router设置的路由不是真实存在的路径. 解 ...
- Nodejs in Visual Studio Code 12.构建单页应用Scrat实践
1.开始 随着前端工程化深入研究,前端工程师现在碉堡了,甚至搞了个自己的前端网站http://div.io/需要邀请码才能注册,不过里面的技术确实牛.距离顶级的前端架构,目前博主应该是far away ...
- 单页应用Scrat实践
单页应用Scrat实践 1.开始 随着前端工程化深入研究,前端工程师现在碉堡了,甚至搞了个自己的前端网站http://div.io/需要邀请码才能注册,不过里面的技术确实牛.距离顶级的前端架构,目前博 ...
- vue 专题 vue2.0各大前端移动端ui框架组件展示
Vue 专题 一个数据驱动的组件,为现代化的 Web 界面而生.具有可扩展的数据绑定机制,原生对象即模型,简洁明了的 API 组件化 UI 构建 多个轻量库搭配使用 请访问链接: https://ww ...
- PHPCMS v9修改栏目或者单页没有权限
问题: 普通管理员没有权限修改栏目,只有超级管理员才有权限修改,凡是非超级管理员,设置栏目权限后只能添加栏目,不能对栏目进行修改和删除操作,提示您没有权限操作该项这使系统的一个BUG. 一.对于普 ...
随机推荐
- mingw + cmake + vscode
.vscode settings.json { "cmake.generator": "MinGW Makefiles" } cmake-kits.js ...
- SRE:如何提高报警有效性?
为什么要提升<报警有效性> 过多的报警会让负责人麻木 过多的报警会增加短信和电话的成本 提升根因定位效率 如何定义<报警有效性> 不漏报 不误报 不重报 不延报 如何量化 MT ...
- GMAC网卡相关介绍与分析
GMAC网卡相关介绍与分析 目录 GMAC网卡相关介绍与分析 环境描述 MII MII RMII GMII RGMII SGMII GMAC网卡信息获取方法 获取GMAC网卡信息 查看PHY工作接口模 ...
- JZOJ 1166. 树中点对距离
题面 思路 本蒟蒻第一次学点分治,正遇模板题,留个模板代码 \(Code\) #include<cstdio> #include<algorithm> using namesp ...
- JZOJ 5353. 【NOIP2017提高A组模拟9.9】村通网
题目 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药. 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信号很差. 一座建筑 ...
- Node.js安装、webpack 安装步骤Windows
注意:CMD要以管理员身份打开,否则在安装webpack那一步一直报错 默认 : C:\Windows\System32 --cmd.exe 什么是Node.js? 简单的说 Node.js 就是运行 ...
- vue浏览器全屏 非全屏切换 按esc退出全屏
methods: { // 全屏 点击按钮 allping(){ this.status = true; this.enterFullscreen(); ...
- 基于C++的OpenGL 05 之坐标系统
1. 引言 本文基于C++语言,描述OpenGL的坐标系统 前置知识可参考: 基于C++的OpenGL 04 之变换 - 当时明月在曾照彩云归 - 博客园 (cnblogs.com) 笔者这里不过多描 ...
- DesignPatternPrinciple-设计模式原则
1. 单一职责原则(Single Responsibility Principle)类T负责两个不同的职责:职责P1,职责P2. using System; using System.Collecti ...
- TensorFlow中使用tf.keras.callbacks.EarlyStopping防止训练过拟合
TensorFlow tf.keras.callbacks.EarlyStopping 当模型训练次数epoch设置到100甚至更大时,如果模型的效果没有进一步提升,那么训练可以提前停止,继续训练很可 ...