• webpack处理html资源


    1.在这里其实就是相当于下载一个插件

    2.先下载包

    npm i html-webpack-plugin -D

    3.在配置当中要引入下载的插件包,然后再在module.exports={ }当中进行配置

    const HtmlWebpackPlugin = require("html-webpack-plugin");
    1. new HtmlWebpackPlugin({
    2. // 以 public/index.html 为模板创建文件
    3. // 新的html文件有两个特点:1. 内容和源文件一致 2. 自动引入打包生成的js等资源
    4. template: path.resolve(__dirname, "public/index.html"),
    5. })
    • webpack.config.js
      1. const path = require("path");
      2. const ESLintWebpackPlugin = require("eslint-webpack-plugin");
      3. const HtmlWebpackPlugin = require("html-webpack-plugin");
      4. module.exports = {
      5. entry: "./src/main.js",
      6. output: {
      7. path: path.resolve(__dirname, "dist"),
      8. filename: "static/js/main.js", // 将 js 文件输出到 static/js 目录中
      9. clean: true, // 自动将上次打包目录资源清空
      10. },
      11. module: {
      12. rules: [
      13. {
      14. // 用来匹配 .css 结尾的文件
      15. test: /\.css$/,
      16. // use 数组里面 Loader 执行顺序是从右到左
      17. use: ["style-loader", "css-loader"],
      18. },
      19. {
      20. test: /\.less$/,
      21. use: ["style-loader", "css-loader", "less-loader"],
      22. },
      23. {
      24. test: /\.s[ac]ss$/,
      25. use: ["style-loader", "css-loader", "sass-loader"],
      26. },
      27. {
      28. test: /\.styl$/,
      29. use: ["style-loader", "css-loader", "stylus-loader"],
      30. },
      31. {
      32. test: /\.(png|jpe?g|gif|webp)$/,
      33. type: "asset",
      34. parser: {
      35. dataUrlCondition: {
      36. maxSize: 10 * 1024, // 小于10kb的图片会被base64处理
      37. },
      38. },
      39. generator: {
      40. // 将图片文件输出到 static/imgs 目录中
      41. // 将图片文件命名 [hash:8][ext][query]
      42. // [hash:8]: hash值取8
      43. // [ext]: 使用之前的文件扩展名
      44. // [query]: 添加之前的query参数
      45. filename: "static/imgs/[hash:8][ext][query]",
      46. },
      47. },
      48. {
      49. test: /\.(ttf|woff2?)$/,
      50. type: "asset/resource",
      51. generator: {
      52. filename: "static/media/[hash:8][ext][query]",
      53. },
      54. },
      55. {
      56. test: /\.js$/,
      57. exclude: /node_modules/, // 排除node_modules代码不编译
      58. loader: "babel-loader",
      59. },
      60. ],
      61. },
      62. plugins: [
      63. new ESLintWebpackPlugin({
      64. // 指定检查文件的根目录
      65. context: path.resolve(__dirname, "src"),
      66. }),
      67. new HtmlWebpackPlugin({
      68. // 以 public/index.html 为模板创建文件
      69. // 新的html文件有两个特点:1. 内容和源文件一致 2. 自动引入打包生成的js等资源
      70. template: path.resolve(__dirname, "public/index.html"),
      71. }),
      72. ],
      73. mode: "development",
      74. };

    4.修改index.html

    去掉引入的 js 文件,因为 HtmlWebpackPlugin 会自动引入

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    7. <title>webpack5</title>
    8. </head>
    9. <body>
    10. <h1>Hello Webpack5</h1>
    11. <div class="box1"></div>
    12. <div class="box2"></div>
    13. <div class="box3"></div>
    14. <div class="box4"></div>
    15. <div class="box5"></div>
    16. <i class="iconfont icon-arrow-down"></i>
    17. <i class="iconfont icon-ashbin"></i>
    18. <i class="iconfont icon-browse"></i>
    19. </body>
    20. </html>

     5.运行打包

    npx webpack

    此时 dist 目录就会输出一个 index.html 文件

  • 相关阅读:
    社区团购新玩法,生鲜蔬菜配货发货小程序商城
    Postman自动化测试实战:使用脚本提升测试效率
    优化风控模型特征变量池,试一下这种实操方法
    工业品商城软件java和PHP哪个好?
    【低码】asp.net core 实体类可生产 CRUD 后台管理界面
    压缩包已知密码却跳过密码界面直接弹出解压
    MySQL数据库增删改查操作和常用命令
    RCE——远程命令执行(无字母数字篇)
    如何做代码评审(code review)
    9-AJAX-下-axios
  • 原文地址:https://blog.csdn.net/m0_68997646/article/details/127644030