zoukankan      html  css  js  c++  java
  • webpack 图片文件处理loader

    目录结构:

     引用图片:

    body {
         /*background: red;*/
         /*background: url("../img/test2.jpg"); 小图片*/
         background: url("../img/test.jpg"); /*大图片*/
     }

    安装url-loader和file-loader:

    npm install --save-dev url-loader 
    npm install --save-dev file-loader//当文件大小超过limit时会用file-loader来编译

    配置webpack.config.js:

    module: {
            rules: [
                {
                    test: /.css$/,
                    use: [ 'style-loader', 'css-loader' ]
                },
                {
                    test: /.less$/,
                    use: [{
                        loader: "style-loader" // creates style nodes from JS strings
                    }, {
                        loader: "css-loader" // translates CSS into CommonJS
                    }, {
                        loader: "less-loader" // compiles Less to CSS
                    }]
                },
                {
                    test: /.(png|jpg|gif)$/,
                    use: [
                        {
                            loader: 'url-loader',
                            //当加载的图片小于limit时,会直接用url-loader将图片的格式编译成base64格式的
                            //当加载图片大于limit时,需要使用file-loader来编译,并且打包到dist文件夹下面
                            options: {
                                limit: 16000,
                                name: 'img/[name].[hash:8].[ext]' // 对打包后的图片命名进行相关的处理,表示在dist文件夹下建一个img文件夹保存图片,同时图片的名字是原来的名字加上8位hash值,
    再加上图片的扩展名
    } } ] } ] },
    当加载的图片小于limit时,会直接用url-loader将图片的格式编译成base64格式的打包后显示如下:

     

    当加载图片大于limit时,需要使用file-loader来编译,并且打包到dist文件夹下面,同时需要在webpack.config.js里面配置加载图片的路径
    module.exports = {  //导出入口和出口路径
        entry: './src/main.js', //入口文件
        output: { // 动态获取路径
            path: path.resolve(__dirname, 'dist'), // resolve拼接路径 __dirname是node自带全局变量,保存现在项目的路径
            filename: 'bundle.js',
            publicPath: 'dist/'  //处理完的图片加载路径是这个
        },
    打包后显示如下:

     如果不对打包后的图片命名处理的话就是一下这种形似的

     处理之后是这种形式的:

     对打包后的图片命名进行相关的处理,表示在dist文件夹下建一个img文件夹保存图片,同时图片的名字是原来的名字加上8位hash值,再加上图片的扩展名:

    在options中添加上name相关配置:
    options: {
    limit: 16000,
    name: 'img/[name].[hash:8].[ext]'
    }
    img:文件要打包到的文件夹
    name:获取图片原来的名字,放在该位置
    hash:8:为了防止图片名称冲突,依然使用hash,但是我们只保留8位
    ext:使用图片原来的扩展名

    不积跬步无以至千里
  • 相关阅读:
    MIME 部分扩展名与类型对应
    sql server 表变量、表类型、临时表
    SqlBulkCopy使用注意事项
    SQL Server为啥使用了这么多内存?
    SQL SERVER下有序GUID和无序GUID作为主键&聚集索引的性能表现
    DQL、DML、DDL、DCL的概念与区别
    IIS解决CPU和内存占用率过高的问题
    SQL Server 表变量和临时表的区别
    I Count Two Three(打表+排序+二分查找)
    AC自动机入门经典题目(两种表达方式)
  • 原文地址:https://www.cnblogs.com/lyt0207/p/11927600.html
Copyright © 2011-2022 走看看