webpack图片处理,文件分类和打包多页面应用

一、webpack的图片处理

1、file-loader 默认会在内部生成一张图片到 build目录下,把生成的图片的名字返回回来。
通过js创建图片对象生成图片

import logo from './logo.JPG';
let img = new Image();
img.src = logo;
document.body.appendChild(img);
//1、先安装file-loader
yarn add file-loader -D
//2、在webpack.config.js里进行配置
rules:[
	{
       test:/\.(png|jpg|gif|JPG)$/,
        //做一个限制 当我们的图片 小于多少k的时候 用base64来转化
        //否则用file-loader产生真实的图片
        use:{
                loader:'url-loader',
                 options:{
                     limit:200*1024
                 }
             }
    }
]

在html文件中通过img标签引入图片

<img src="./logo.JPG" alt="">
//1、先安装插件
yarn add html-withimg-loader -D
//2、在webpack.config文件中配置
rules:[
	{
         test:/\.html$/,
         use:'html-withimg-loader'
     }
]

在css文件中通过样式引入

div{
background:url("./logo.png");
}
//查看资料说css-loader可以直接解析,但亲测并没有成功,还希望知道的朋友可以
//帮我解答一下,谢谢

二、打包文件分类

把图片打包到固定的img文件夹下

rules:[
	{
        test:/\.(png|jpg|gif|JPG)$/,
        use:{
            loader:'url-loader',
            options:{
                limit:200*1024,
                outputPath:'/img/', //把打包后的图片生成到固定的目录下
                publicPath:'http:www.sensen.cn' //把图片打包到某一域名下
            }
        }
    }
]

把打包后的css放到固定的css目录下

plugins:[
	new MiniCssExtractPlugin({
       filename:'css/main.css'  //打包到css目录下
    })
]
rules:[
	{
       test:/\.css$/,
        // use: ['style-loader','css-loader'],
        //或者以下写法
        use:[
            MiniCssExtractPlugin.loader,
            'css-loader',
            'postcss-loader'
        ]
    }
]

给所有文件配置公共的域名

output: {
    filename: 'bundle.js', //打包后的文件名
    path: path.resolve(__dirname,'dist'), //路径必须是一个绝对路径
    publicPath:"http://www.zhufeng.cn" //公共域名
}

三、打包多页应用

let path = require('path');
let HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    //多入口
    mode:'development',
    entry:{
        home:'./src/index.js',
        other:'./src/other.js'
    },
    output:{
        filename:'[name].js',
        path:path.resolve(__dirname,'dist')
    },
    plugins:[
        new HtmlWebpackPlugin({
            template:'./index.html', //打包html所用的模板
            filename:'home.html', //打包之后的html文件名
            chunks:['home'] //html文件对应引入的js
        }),
        new HtmlWebpackPlugin({
            template:'./index.html',
            filename:'other.html',
            chunks:['other']
        })
    ]
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值