当前位置: 首页 > article >正文

webpack--处理资源

webpack.config.js中进行配置 

const path = require('path')
module.exports = {
  // 入口
  entry: './src/main.js',
  // 输出
  output: {
    // 文件的输出路径
    path: path.resolve(__dirname, 'dist'),
    // 入口文件打包输出的文件名
    filename: 'js/main.js',
    // 自动清空上次打包结果 原理:在打包前,将path整个目录内容清空 再进行打包
    clean: true,
  },
  // 加载器
  module: {
    rules: [
      // loader的配置
      // css-loader 处理css文件
      {
        test: /\.css$/, // 只检测xxx文件
        use: [
          // 执行顺序从右到左(从下到上)
          'style-loader', // 将js中css通过创建style标签的样式添加到html中生效
          'css-loader', // 将css资源编译成common.js的模块到js中
        ],
      },
      // less-loader 处理less文件
      {
        test: /\.less$/, // 只检测less文件
        use: ['style-loader', 'css-loader', 'less-loader'],
      },
      // sass-loader 处理scss文件
      {
        test: /\.s[ac]ss$/,
        use: [
          // 将 JS 字符串生成为 style 节点
          'style-loader',
          // 将 CSS 转化成 CommonJS 模块
          'css-loader',
          // 将 Sass 编译成 CSS
          'sass-loader',
        ],
      },
      // stylus-loader 处理styl文件
      {
        test: /\.styl$/,
        use: ['style-loader', 'css-loader', 'stylus-loader'], // 将styl文件编译为 CSS
      },
      // 处理图片
      {
        test: /\.(png|jpe?g|gif|webp|svg)$/,
        // 会转base64
        type: 'asset',
        parser: {
          dataUrlCondition: {
            // 小于10kb的图片转base64
            // 优点:减少请求数量 缺点:体积会更大
            maxSize: 10 * 1024, // 10kb,
          },
        },
        generator: {
          // hash:5 hash值取前5位数(打包后的图片名称)
          filename: 'images/[hash:5][ext][query]',
        },
      },
      // 处理字体文件
      {
        test: /\.(ttf|woff2?)$/,
        // 不会转base64
        type: 'asset/resource',
        generator: {
          filename: 'font/[hash:5][ext][query]',
        },
      },
      // 处理其他资源
      {
        test: /\.(mp3|mp4|avi)$/,
        // 不会转base64
        type: 'asset/resource',
        generator: {
          filename: 'media/[hash:5][ext][query]',
        },
      },
    ],
  },
  // 插件
  plugins: [
    // plugin的配置
  ],
  // 模式
  mode: 'development',
}


http://www.kler.cn/news/290198.html

相关文章:

  • 【linux002】目录操作命令篇 - ls 命令
  • 用table展示表头和侧边都是动态
  • 注册安全分析报告:央视网
  • 基于SpringBoot+Vue+MySQL的宠物寄养服务管理系统
  • ElementPlus实现页面,上部分是表单,下部分是表格
  • 从PX4源码PX4-Autopolite中的Boards中选择适合自己移植的版本
  • 828华为云征文|华为云Flexus X实例docker部署srs6并调优,协议使用webrtc与rtmp
  • 基于Python的网络编程
  • C1-1 ABB二次SDK开发——C#Window窗体-环境配置(带ABB二次开发SDK资源包)
  • 【赵渝强老师】MongoDB的MMAPv1存储引擎
  • Java 集合性能优化
  • 临时表的魔力:SQL中的快速缓存与数据处理
  • 前端常见文件下载方式总结
  • 已经存在的项目如何变成git的一个repository
  • springboot集成guava布隆过滤器
  • 24/9/3算法笔记 kaggle泰坦尼克
  • goalng http client的MaxIdleConnsPerHost,MaxIdleConns,MaxConnsPerHost参数设置总结
  • 鸿蒙模拟器篇
  • stream流常见方法
  • Spring Cloud Gateway之路由配置
  • 谷粒商城实战笔记-285~290-分布式事务
  • 设计模式 18 备忘录模式
  • LeetCode的高频SQL50题(基础版)学习笔记
  • 惠中科技RDS自清洁膜层:光伏领域的绿色革命
  • Spark MLlib模型训练—回归算法 Survival Regression
  • 【Selenium】Selenium运行时报cannot find Chrome binary错误的解决办吧
  • linux之网络子系统-MAC帧、数据报、段 的头部信息
  • 【C++】如何解决“pointer to incomplete class type is not allowed”。
  • 一篇文章讲清楚什么是Spring AOP
  • 从汇编角度分析C语言中的局部变量是如何产生的