微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webpack常用插件说明

最近想深入了解webpack,根据视频写下的总结,本文记录一下用到的插件,以后自己构建webpack的时候可以直接拿来 yarn add

当前所有的插件都是基于webpack4的前提下进行的安装,插件具体版本会有写明。

yarn init -y

devDependencies 开发配置 -D

webpack基础安装

yarn add [email protected] [email protected] -D

构建webpack所需基础插件,这两个是互相搭配使用的,缺一不可。
node_module文件夹同级下创建 webpack.config.js 文件作为webpack的配置文件

const path = require('path')
module.exports = {
	entry: './src/index.js',
	output:{
		filename: 'index.js',
		path: path.resolve(__dirname, './dist')
	},
	module:{[test:'',use'']}, // 模块使用
	plugins:[], // 插件
	optimizatuon:{} // 优化项
}

热更新/加载

yarn add [email protected] -D

用来启用服务。
在webpack.config.js文件内与output同级的devServer对象中进行配置

devServer:{
	port: 端口号,
	progress: 加载显示百分比,
	contentBase: 起服务的地址 // 如果文件夹中没有此目录,将会使用在虚拟内存中的目录
}

打包生成html文件

yarn add [email protected] -D
const HtmlWebpackPlugin = require('html-webpack-plugin')
 // 下文再演示插件写法时,将直接略过本行,直接进行调用名称就是 yarn add 时插件名称的驼峰写法。
 
plugins:[new HtmlWebpackPlugin({
	template: './src/index.js', // 模版地址
	filename: 'index.html', // 文件名
	hash: true, // 是否将在html中引入文件时插入hash值,避免缓存问题
)]

css内容处理

yarn add [email protected] css-[email protected] -D
module:{
	rules:[{
		test:'/\.css$/',
		use: ['style-loader', 'css-loader']
	}]
}

添加loader时,顺序一定是从右到左,从下往上的!!

less文件处理

yarn add [email protected] [email protected] -D

处理方式和上面一致,顺序上是先编译less成css,然后将css转化至style标签形式插入到html中

module:{
	rules:[{
		test:'/\.less$/',
		use: ['style-loader', 'css-loader', 'less-loader']
	}]
}

css添加后缀

yarn add postcss-[email protected] autop[email protected] -D

这两个文件搭配使用
首先需要在 webpack.config.js 文件同级下创建 postcss.config.js 文件,用来配置postcss-loader

// postcss.config.js
module.exports = {
	plugins:[reuqire('autoprefixer')]
}

由于要在转化css前就要设置完成前缀,所以要在css-loader前使用

// webpack.config.js
module:{
	rules:[{
		test:'/\.css$/',
		use: ['style-loader', 'css-loader', 'postcss-loader']
	}]
}

抽离css以link形式嵌入html

yarn add mini-css-[email protected] -D
plugins:[new MiniCssExtractPlugin({
	filename: 'index.css', // 抽离css文件名称
})]

在module对象中rules的每个检验css,less对象中将style-loader替换成MiniCssExtractPlugin.loader,因为不再是style标签插入css了

module:{
	rules:[{
		test:'/\.css$/',
		use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader']
	}]
}

css文件压缩

yarn add optimize-css-assets-webpack-plugin -D

需要在优化项optimization中新增nimimizer数组,填入要进行处理的插件

  optimization: {
    minimizer: [new OptimizeCssAssetsWebpackPlugin()]
  }

但是只这样执行的话,css确实是压缩成功了,但是它的副作用导致js压缩失败了,所以需要一个新的插件来处理这种情况

yarn add uglifyjs-webpack-plugin -D
  optimization: {
    minimizer: [new OptimizeCssplugin(), new UglifyjsPlugin({
      cache: true, // 使用缓存
      parallel: true, // 并行打包
      sourceMap: true // 源码映射
    })]
  }

这样就可以正常使用了

日后不定期更新…

若转载,请标明原文地址。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐