4、Webpack配置参数Loader

file-loader

当需要引用jpg文件时,直接引用打包会报错,这时需要在配置文件里面进行配置(当引入的文件是jpg格式时使用file-loader进行打包):

module: {
    rules: [{
        test: /\.(jpg$|png|gif)$/,    //jpg$|png|gif文件打包
        use: {
            loader: 'file-loader',
            //placeholders 占位符
            options: {
                name: '[name].[ext]',  //配置打包出的文件名与原文件名一致
                outputPath: 'images/'   //打包文件生成的位置
            }
        }
    }]
},

但是,此时我们并没有安装file-loader,在命令行中输入npm install file-loader -D进行安装


image.png

这样配置完在重新打包就会额外生成一个jpg文件,并且返回打包后的文件地址。

import test from './test.jpg';

var img = new Image();
img.src = test;

var root = document.getElementById('root');
root.append(img);

url-loader

url-loader和file-loader很类似,同样可以进行文件的打包。那么在我们进行一系列安装配置过后,发现dist目录下并没有生成图片文件,但是页面上却可以正常的显示。在浏览器上查看文件地址发现文件是一个base64的地址

image.png

相比file-loader,url-loader有一个优势,由于页面引用的是base64位的地址,那么就减少了http请求,页面加载速度会更快。
由此出现另一个问题,当页面上有很多图片而且可能图片文件比较大,如果全部用url-loader进行打包就会使得main.js文件很大,所以我们应该再加一个配置:limit

module: {
    rules: [{
        test: /\.(jpg$|png|gif)$/,    //jpg$|png|gif文件打包
        use: {
            loader: 'file-loader',
            //placeholders 占位符
            options: {
                name: '[name].[ext]',  //配置打包出的文件名与原文件名一致
                outputPath: 'images/',   //打包文件生成的位置
                limit: 2048  //文件小于2kb将会打包到main.js中
            }
        }
    }]
},

scss-loader

{
    test: /\.scss$/,    //scss文件打包
    use: [
        {loader: 'style-loader'},
        {
            loader: 'css-loader',
            options: {
                importLoaders: 2,  //import 引入的scss都需要从下到上执行所有的loader
                modules: true  //开启css模块化打包,引入的css仅在当前项目有效
            }
        },
        {loader: 'sass-loader'},
        {loader: 'postcss-loader'}
    ]
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Webpack学习总结 此文只是自己学习webpack的一些总结,方便自己查阅,阅读不变,非常抱歉!! 下载安装:...
    Lxs_597阅读 996评论 0 0
  • 目录第1章 webpack简介 11.1 webpack是什么? 11.2 官网地址 21.3 为什么使用 web...
    lemonzoey阅读 1,757评论 0 1
  • 接着上一块https://www.jianshu.com/p/dd135bdb9065 模块:CSS文件打包 We...
    感觉不错哦阅读 512评论 0 2
  • 学习目的 学习前端构建化工具 webpack,能熟练掌握 并使用 webpack 对项目进行打包优化。 ...
    _1633_阅读 1,372评论 0 7
  • 1.当前项目存在的问题 存在大量静态文件不好管理,要修改一个地方的地址就要在项目中找哪些地方用了这个资源 包之间的...
    Metallica_d8b1阅读 329评论 0 0