• webpack(9)打包图片


    1.图片的引用在css文件中,比如在之前的inde.css文件中添加如下属性:background-image: url('../img/1.jpg');

    安装包:npm install url-loader file-loader -D

    然后再webpack.config.js中配置:

    const{resolve}=require('path');
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    const MiniCssExtractPlugin = require('mini-css-extract-plugin');
    const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin');
    const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');

    module.exports={
        entry:{
            vender:['./src/js/jquery.js','./src/js/common.js'],
            index:'./src/js/index.js',
            cart:'./src/js/cart.js'
        },
        output:{
            path:resolve(__dirname,'build'),
            filename:'[name].js'
        },
        mode:'development',
        module:{
            rules:[
                //{test:/.css$/,use:['style-loader','css-loader']},
                {test:/.css$/,use:[MiniCssExtractPlugin.loader,'css-loader','postcss-loader']},
                {test:/.less$/,use:[MiniCssExtractPlugin.loader,'css-loader','less-loader','postcss-loader']},
                {test:/.scss$/,use:[MiniCssExtractPlugin.loader,'css-loader','sass-loader','postcss-loader']},
                {test:/.(jpg|png)$/,use:[{ loader:'url-loader',options:{//png和jpg后缀的文件使用url-loader打包
                    publichPath:'./images',//打包后的图片引用的路径,即在原来css的路径写的是图片真实存在的路径,这里配置的是我们把图片打包到build后,图片的引用路径。
                    outputPath:'images/',//打包后的图片文件的输出路径
                    limit:1024*16,//如果图片小于16kb则直接以base64的方式插入css,就不会生成真实的图片文件
                    name:'[name].[ext]'//图片打包后的名字,这里的表达式表示使用原来的名称。如果没有这个配置默认的是[hash].[ext],即打包后图片的名称变为一串hash码。
                }}]}
            ]
        },
        plugins:[
            new HtmlWebpackPlugin({
                template:'./src/index.html',
                filename:'index.html',
                chunks:['vender','index']
            }),
            new HtmlWebpackPlugin({
                template:'./src/cart.html',
                filename:'cart.html',
                chunks:['vender','cart']
            }),
            new MiniCssExtractPlugin({
                filename:'index.css'
            }),
            //new OptimizeCssAssetsPlugin()
        ]
    }

    2.图片的引用在html中,在index.html中添加下面代码:

    <img src="./img/2.png" > 
    安装包: npm install html-loader@1.3.2  -D    //注意这里最好安1.3.2版本的,我在测试的时候安装了2.0.0及其以上版本打包的时候都报错了
    webpack.js.config中配置:
    const{resolve}=require('path');
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    const MiniCssExtractPlugin = require('mini-css-extract-plugin');
    const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin');
    const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');

    module.exports={
        entry:{
            vender:['./src/js/jquery.js','./src/js/common.js'],
            index:'./src/js/index.js',
            cart:'./src/js/cart.js'
        },
        output:{
            path:resolve(__dirname,'build'),
            filename:'[name].js'
        },
        mode:'development',
        module:{
            rules:[
                //{test:/.css$/,use:['style-loader','css-loader']},
                {test:/.css$/,use:[MiniCssExtractPlugin.loader,'css-loader','postcss-loader']},
                {test:/.less$/,use:[MiniCssExtractPlugin.loader,'css-loader','less-loader','postcss-loader']},
                {test:/.scss$/,use:[MiniCssExtractPlugin.loader,'css-loader','sass-loader','postcss-loader']},
                {test:/.(jpg|png)$/,use:[{ loader:'url-loader',options:{
                    publichPath:'./images',
                    outputPath:'images/',
                    limit:1024*16,
                    name:'[name].[ext]'
                }}]},
                {test: /.(html)$/, use:['html-loader']}//配置使用html-loader,这里虽然名字叫html-loader,但是实际是用来处理html中的图片插入的。html的打包还是使用的下面的HtmlWebpackPlugin
            ]
        },
        plugins:[
            new HtmlWebpackPlugin({
                template:'./src/index.html',
                filename:'index.html',
                chunks:['vender','index']
            }),
            new HtmlWebpackPlugin({
                template:'./src/cart.html',
                filename:'cart.html',
                chunks:['vender','cart']
            }),
            new MiniCssExtractPlugin({
                filename:'index.css'
            }),
            //new OptimizeCssAssetsPlugin()
        ]
    }
  • 相关阅读:
    jmeter如何监控服务器CPU、内存、i/o等资源
    Red hat下搭建简易实用的SVN服务器
    ICPC2021(济南)打星队线上打铁游记
    「笔记」如何优雅的造数据
    软件开发中,不要把重点放在“雕琢”上
    对公司数据库管理的看法
    工作两年来 对VB开发的感想
    对数学的一点认识
    学习面向对象语言的感受
    中国 奥运 加油!
  • 原文地址:https://www.cnblogs.com/maycpou/p/14527941.html
Copyright © 2020-2023  润新知