15个具有收藏意义的webpack插件

更新时间:2023-05-18 00:03:02 阅读: 评论:0

15个具有收藏意义的webpack插件
分享一下工作中实用的几个plugin希望对大家有些帮助,不喜勿喷。
html-webpack-plugin
用途: 将一个页面模板打包到dist目录下,默认都是自动引入js or css
秋天的果园图片
安装
cnpm i ***********************.0 -D
配置
index.html
<!DOCTYPE html><html lang="en"><head>    <meta chart="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>首页</title></head><body>    <div id="app"></div></body></html>
fig.js
const HtmlWebpackPlugin = require('html-webpack-plugin');ports = {    plugins: [        new HtmlWebpackPlugin({            template: './index.html',  // 以咱们本地的index.html文件为基础模板            filename: "index.html",  // 输出到dist目录下的文件名称        }),    ]}
HtmlWebpackPlugin接收一个对象,里面自行进行配置,详细参见这里
clean-webpack-plugin
用途: 用于每次打包dist目录删除
安装
cnpm i clean-webpack-plugin -D
配置
fig.js
const { CleanWebpackPlugin } = require('clean-webpack-plugin');ports = {    plugins: [        new CleanWebpackPlugin()    ]}
extract-text-webpack-plugin
用途:css样式从js文件中提取出来最终合成一个css文件,该插件只支持webpack4之前的版本,如果你当前是webpack4及以上版本那么就会报错。
安装
cnpm i extract-text-webpack-plugin -D
配置怎么卖股票
fig.js
const extractTextPlugin = require('extract-text-webpack-plugin');ports = {    module: {        rules: [            {                test: /\.css$/,                u:&act({                    fallback: "style-loader",                     u: "css-
loader"                })            }        ]    },    plugins: [        new extractTextPlugin({            filename: "[name].css",            allChunks: true        })    ]} 
上面配置中,act里面参数fallback是当提取不成功时,就执行style-loaderu里面是提取时使用css-loader进行转换,plugins里面的配置filename是最后合并完的.css文件名称,当allChunksfal时,只会提取初始化时的css文件,为true时会提取异步的css文件。
mini-css-extract-plugin
用途: 该插件与上面的exract-text-webpack-plugin的一样,都是将css样式提取出来, 唯一就是用法不同,本插件的webpack4版本之后推荐使用
安装
cnpm i mini-css-extract-plugin -D
秋葵炒肉
配置
fig.js
const MiniCssExtractPlugin = require('mini-css-extract-plugin');ports = {    module: {        rules: [            {                test: /\.css$/,                u: [                   MiniCssExtractPlugin.loader,                   "css-loader"                ]            }        ]    },    plugins: [        new MiniCssExtractPlugin({            filename: "css/[name].css",            chunkFilename: "css/[name].css"        })    ]} 
上面配置中,可以看到用法与exract-text-webpack-plugin不同,来看一下它们的区别。
1.loader配置没有fallback
2.plugin中设置filename同步加载资源名称,还要指定异步加载css资源chunkFilename
3.该插件支持配置publicPath用来设置异步加载css的路径
明朝历代皇帝列表
4.exract-text-webpack-plugin只会提取一个css文件,mini-css-extract-plugin会根据异步文件提取出来。
果园里
webpack.optimize.CommonsChunkPlugin
用途: 用于将页面里的公共代码提取出来,从而进行优化加载速度,该CommonsChunkPlugin只支持Webpack4之前。
安装
该插件是Webpack内置的,不需要安装。
配置
main.js
import Vue from "vue"
fig.js
ports = {    entry: {        main: "./main.js",        vendor: ["Vue"]    },    plugins: [        new Webpack.optimize.CommonsChunkPlugin({            name: "vendor",            filename:
 "[name].js"        }),        new Webpack.optimize.CommonsChunkPlugin({            name: "common",            chunks: ["vendor"],            filename: "[name].js"        })    ]}
上面配置中,我们把main.js及它里面的依赖文件把Vue.js提取出来进行优化,避免每次打包或者每次访问其它页面都加载一个该js文件, 我们先是把Vue基础环境提取出来,因为基础环境它几乎不会改变,从而进行提取优化是必须的。再把Webpack运行时的代码也提取出来, 这样vendor就再次打包也不会变化,可以走浏览器缓存
optimization.SplitChunks
用途: 该功能与上面的webpack.optimize.CommonsChunkPlugin一样,只不过optimization.SplitChunkswebpack4之后推荐使用的
安装
宽则得众内置的,不需要安装。
配置
main.js
import Vue from "vue"console.log(Vue)import("./news")
news.js
import Vue from "vue"console.log(Vue)
fig.js
相手蟹怎么养ports = {    mode: "development",    entry: {        main: "./main.js"    },    output: {        filename: "[name].js",        path: __dirname + "/dist"    },    optimization: {        splitChunks: {            chunks: "all"        }    },}
上面配置中,splitChunkschunksall是对所有的chunk都生效,默认只对async异步有效。
splitChunks默认情况下也有自动提取,默认要求如下:
被提取的模块来自node_module目录
模块大于30kb
按需加载时请求资源最大值小于等于5
首次加载时并行请求最大值小于等于3
DefinePlugin
用途: 用于注入全局变量,一般用在环境变量上。
安装
无需安装,webpack内置
配置
fig.js
const Webpack = require("webpack")ports = {    plugins: [        new Webpack.DefinePlugin({           STR: JSON.stringify("蛙人"),           "v": JS
ON.stringify("dev"),            name: "蛙人"        })    ]}xiaoxue

本文发布于:2023-05-18 00:03:02,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/910321.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:提取   出来   进行   加载   打包   插件
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图