首页 > 其他分享 >Webpack 打包 - 4.webpack 图片资源打包

Webpack 打包 - 4.webpack 图片资源打包

时间:2022-08-16 17:44:23浏览次数:46  
标签:index url webpack loader Webpack html background 打包

1.文件结构

 

 

 2.安装 webpack、webpack-cli

$ npm init
$ npm i [email protected]  [email protected]  -g   //(全局)
$ npm i [email protected]  [email protected]  -D   //(开发环境)

2.1 安装 url-loader、file-loader

$ npm i [email protected] [email protected] -D

2.2 安装 html-loader

$ npm i [email protected] -D

3. 新建 src 文件夹,并在文件夹下新建 index.html、index.js、index.less 文件夹,以及三张测试图片。。。

3.1 新建 webpack.config.js 文件

 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>webpack</title>
</head>
<body>
    <div id="box1"></div>
    <div id="box2"></div>
    <div id="box3"></div>
    <img src="./angular.jpg" alt="angualr">
</body>
</html>

 

index.js

import './index.less'

 

index.less

#box1{
  width: 100px;
  height: 100px;
  background-image: url("./vue.jpg");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

#box2{
  width: 200px;
  height: 200px;
  background-image: url("./react.png");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

#box3{
  width: 300px;
  height: 300px;
  background-image: url("./angular.jpg");
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

 

webpack.config.js

const {resolve} = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    entry: './src/index.js',
    output: {
        filename: "built.js",
        path: resolve(__dirname, 'build')
    },
    module: {
        rules: [
            //less loader
            {
                test: /\.less$/,
                //使用多个 loader 使用 use
                use: ['style-loader', 'css-loader', 'less-loader']
            },
            //img loader
            {
                // 问题:默认处理不了html中img图片
                // 处理图片资源
                test: /\.(jpg|png|gif)$/,
                // 使用一个loader
                // 下载 url-loader file-loader
                loader: 'url-loader',
                options: {
                    // 图片大小小于 8kb,就会被 base64 处理
                    // 优点: 减少请求数量(减轻服务器压力)
                    // 缺点:图片体积会更大(文件请求速度更慢)
                    limit: 8 * 1024,
                    // 问题:因为 url-loader 默认使用 es6 模块化解析,而 html-loader 引入图片是 commonjs
                    // 解析时会出问题:[object Module]
                    // 解决:关闭 url-loader 的 es6 模块化,使用 commonjs 解析
                    esModule: false,
                    // 给图片进行重命名(处理名字太长的问题)
                    // [hash:10] 取图片的 hash 的前 10 位
                    // [ext] 取文件原来扩展名
                    name: '[hash:10].[ext]'
                }
            },
            // html loader
            {
                test: /\.html$/,
                //处理 html 文件的图片(负责引入 img,从而能被 url-loader 进行处理)
                loader: 'html-loader'
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: "./src/index.html"
        })
    ],
    mode: 'development'
}

这里主要使用 url-loader 处理外部的图片资源。而 index.html 文件中的资源,使用 html-loader 处理

 

 4.打包

$ webpack

此时 build 文件夹中已经生成打包后的文件

 

 

预览

 

 

end~

 

标签:index,url,webpack,loader,Webpack,html,background,打包
From: https://www.cnblogs.com/sener/p/16592330.html

相关文章

  • Webpack 打包 - 1.webpack 基本打包(JS、JSON)。
    1.文件结构  2.初始化,生成package.json文件$npminit 2.1安装webpack和webpack-cli.(这里使用的是webpack5以下的版本)[email protected]......
  • 按照webpack教程起步自己写的理解 webpack起步 + 管理输出+开发环境设置
    一、webpack起步默认打包一般使用webpack的开头,会有个教程,1.先npminit-y形成package.json,2.然后装webpack和webpack-cli,之后创建一个如下的目录,--save-dev表示开发时......
  • .net6 mac 下不同解决方案项目打包引用
     我有一些基础模块包在另一个解决方案中,想打完包后,给项目使用 操作步骤:1):打包备用    2):增加nuget源        3)把打好的包拷进自建源的......
  • 微服务Docker打包
    微服务Docker打包Jib是Google开发的可以直接构建Java应用的Docker和OCI镜像的类库,以Maven和Gradle插件形式提供。Jib带来的是,它允许您通过简单地将插件添加......
  • 2022.8.14 模块化、Webpack、Vue-element-admin
    06、模块化相当于形成包6.1、简介模块化产生的背景随着网站逐渐变成”互联网应用程序”,嵌入网页的Javascript代码越来越庞大,越来越复杂。Javascript模块化编程,已经成......
  • 搭建 Webpack + TypeScript + Babel 的项目
    安装依赖包首先把webpack相关的依赖安装了:npmi-Dwebpackwebpack-cli安装各个loader:npmi-Dts-loaderbabel-loadersource-map-loader安装babel的核心:n......
  • Eclipse中Maven打包配置
    打包命令cleaninstall-Dmaven.test.skip=true-Dmaven.javadoc.skip=true-Dfile.encoding=UTF-8-Pdev[mvn]cleanpackage或者cleaninstall普通Maven项目Jar类......
  • C#版Unity-APK打包工具
    最近应大佬的要求,给渠道做了一个打包工具。这里说的打包工具,不是在unity里直接调用打包,而是更改已打包好的APK,进行换皮换资源换渠道操作。 话不多说,winform开起来。下......
  • webpack使用
    Node.js遵循CommonJs规范,核心思想允许require方法来同步加载所需依赖的其他模块,通过exports或者module.exports来导出需要暴露的接口 优点:服务端模块便于复用缺点:同步......
  • 项目打包
     安装:      webpack需要结合webpack-cli一起使用      npmiwebpackwebpackc-li--save    创建文件:       ......