码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Webpack常见的插件和模式


    1 认识插件Plugin

    2 CleanWebpackPlugin

    3 HtmlWebpackPlugin

    4 DefinePlugin

    5 mode模式配置

    注意区分loader和plugin的作用:

     

    举个例子:一个less文件,在loader转换后只会放到原来的文件里面,但是如果你用了插件,就可以将loader转换后的代码放到另外一个新的css文件里面,一个操作。

    CleanWebpackPlugin是用来每次打包项目的时候删除之前已经打包过的文件,然后再打包新文件。但是现在的webpack的output选项里面已经可以添加claen来实现CleanWebpackPlugin的功能了。所以CleanWebpackPlugin比较少用了。

     

    Output | webpack 中文文档 | webpack 中文文档 | webpack 中文网 (webpackjs.com)icon-default.png?t=N4P3https://www.webpackjs.com/configuration/output/#outputclean

    HtmlWebpackPlugin是用来在打包好的文件夹里面创建html文件,由于不配置这个的话,打包好的文件夹里面可能会没有html文件。这个html文件里面的内容我们可以通过template来自定义。

     

     DefinePlugin是webpack内置的插件,就不用下载了,这个插件是用来设置,该插件内的内容会被执行一次,产生的结果赋予原来的key的value。执行一次的目的是做到js的字符串拼接。并且在写的时候要注意字符串内容要加引号。在里面设置的变量在项目的全局所有文件中都可以使用。比如js、html文件。

     

     

    怎么使用插件?

    先下载插件

    npm install clean-webpack-plugin -D
    npm install html-webpack-plugin -D

    在webpack的配置文件里面的plugins里面写

    1. const path = require("path")
    2. const { CleanWebpackPlugin } = require("clean-webpack-plugin")
    3. const HtmlWebpackPlugin = require('html-webpack-plugin')
    4. const { DefinePlugin } = require("webpack")
    5. module.exports = {
    6. mode: "production",
    7. entry: "./src/main.js",
    8. output: {
    9. filename: "bundle.js",
    10. path: path.resolve(__dirname, "./build"),
    11. clean: true
    12. // assetModuleFilename: "abc.png"
    13. },
    14. resolve: {
    15. extensions: [".js", ".json", ".vue", ".jsx", ".ts", ".tsx"],
    16. alias: {
    17. utils: path.resolve(__dirname, "./src/utils")
    18. }
    19. },
    20. module: {
    21. rules: [
    22. ]
    23. },
    24. plugins: [
    25. //new CleanWebpackPlugin(), 比较少用了
    26. new HtmlWebpackPlugin({
    27. title: "电商项目",
    28. template: "./index.html"
    29. }),
    30. new DefinePlugin({
    31. BASE_URL: "'./'",
    32. coderwhy: "'why'",
    33. counter: "123"
    34. })
    35. ]
    36. }

    mode模式配置

    有三种模式,对应的生产环境、开发环境、不设置

    每种环境都对应自己的优化内容。

    下图的是mode设置不同模式的时候(绿色部分),相当于默认在配置文件中加了的内容(红色部分)

    我们在开发的时候选择development就好,在要打包之前设置成production

    1

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    安防行业商业供应链系统:加速企业数字化升级,助推供应链平台一体化协同发展
    膜拜!清华大佬整理的史上最全面试题,征服美团面试官就靠它
    NumPy sum、mean、cumsum 及参数 axis,keepdims,where 的含义
    鸿蒙开发学习笔记1
    大数据ClickHouse进阶(十一):ClickHouse的Join子句
    Spring构造注入的几种方式
    Java_File 文件类 整理详解(求求了进来看看)
    “赔率”和“概率”
    企业应用超融合架构的设计实例及超融合应用场景分析
    Stanford CS143 速通PA1教程
  • 原文地址:https://blog.csdn.net/weixin_56663198/article/details/130904126
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号