webpack的打包样式资源

一. 开发环境配置的以下几个方面

1-1. 打包 html 样式资源

步骤:

  1. 在项目跟目录下运行
    npm init
    npm i webpack webpack-cli -D
  2. 在根目录下创建一个src文件夹,然后在src里面创建入口文件index.js和html样式index.html
    现在的目录如下:
    在这里插入图片描述
    3.配置 webpack.config.js
    注意点:webpack.config.js 需要创建在根目录下
    我们需要安装 html-webpack-plugin 进行解析
    webpack.config.js:
/*
    plugins: 1. 下载 2.引入 3.使用 
    1.下载: npm i html-webpack-plugin -D
    2.引入 const HtmlWebpackPlugin = require('html-webpack-plugin');
    3. 使用 new HtmlWebpackPlugin({ template:'./src/index.html' })
*/
// path 是node.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:[
            // loader的配置
        ]
    },
    plugins:[
        // plugins的配置
        // 功能:默认会创建一个空的HTML,自动引入打包输出的所有资源(js/css)
        // 需求:需要有结构的HTML文件
        new HtmlWebpackPlugin({
            // 复制 './src/index.html'  文件,并自动引入打包输出的所有资源
            template:'./src/index.html'
        })
    ],
    mode:'development'
}
  1. 安装 html-webpack-plugin
    安装命令:npm i html-webpack-plugin -D
    在这里插入图片描述
    5.打包
    输出命令: webpack
    在这里插入图片描述

2-1 打包图片资源

步骤:

  1. 在项目根目录运行
    生成 package.json: npm init
    本地安装: npm i webpack webpack-cli -D
  2. 在项目根目录下创建一个 src 文件夹,然后在src 文件夹下创建index.html,index.scss,index.js,还有用于展示的图片
    src目录:
    在这里插入图片描述
  3. 配置 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')
    },
    // loader 配置
    module:{
        rules: [
            {
                test: /\.sass$/,   // 识别出那些文件会被转换
                use: [            // 定义出在进行转换时,应该使用哪个loader
                    'style-loader',
                    'css-loader',
                    'sass-loader'
                ]
            },
            {
                // 问题: 默认处理不了html中img图片
                // 处理图片
                test:/\.(jpg|png|gif)$/,
                // 使用一个loader
                // 下载 uel-loader file-loader
                loader: 'url-loader',
                options: {
                    // 图片大小小于8kb,就会被base64处理
                    // 优点:减少请求数量(减轻服务器压力)
                    // 缺点:图片体积会更大(文件请求速度更慢)
                    limit:8 * 1024,

                    // 给图片进行重命名
                    // [hash:10] 取图片的hash的前10位
                    // [ext]取文件原来扩展名
                    name:'[hash:10].[ext]'
                }
            },
            {
                test:/\.html$/,
                // 处理html文件的img图片(负责引入img,从而能被url-loader进行处理)
                loader:'html-loader',
                // webpack5 中需要把esModule 加在 html-loader 中 
                // html-loader 中 图片的解析
                options:{
                    esModule: false,
                }
            }
        ]
    },
    // 插件
    plugins: [
        new HtmlWebpackPlugin({
            template: './src/index.html'
        })
    ],
    // 模式
    mode:'development'
}
  1. 安装 style-loader , css-loader,sass-loader,url-loader,file-loader,html-loader,
  • 安装style-loader: npm i style-loader -D
  • 安装 css-loader : npm i css-loader -D
  • 安装 sass-loader: npm i sass-loader -D
  • 安装url-loader,file-loader: npm i url-loader file-loader -D
  • 安装html-loader: npm i html-loader -D
  • 安装html-webpack-plugin: npm i html-webpack-plugin -D
  1. 打包
    输入指令: webpack
    在这里插入图片描述

3-1 打包其它资源

步骤:

  1. 在项目根目录运行
    生成 package.json: npm init
    本地安装: npm i webpack webpack-cli -D
  2. 创建文件
    在这里插入图片描述
    注意:iconfont是阿里矢量图标库里的,我们需要到阿里图标库去下载我们需要的图标,然后引入到 src 中
  3. 配置 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')
    },
    // loader配置
    module:{
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader','css-loader']
            },
            // 打包其它资源(除了html|js|css)
            {
                // 清除html|js|css资源
                exclude:/\.(css|js|html|sass)$/,
                loader: 'file-loader'
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template:'./src/index.html'
        })
    ],
    mode:'development'
}
  1. 运行指令: webpack

4-1 devserver

  1. 在项目根目录运行
    生成 package.json: npm init
    本地安装: npm i webpack webpack-cli -D
  2. 创建文件
    创建文件
  3. 修改配置文件 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')
    },
    // loader配置
    module:{
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader','css-loader']
            },
            // 打包其它资源(除了html|js|css)
            {
                // 排除 html|js|css资源
                exclude:/\.(css|js|html|sass)$/,
                loader: 'file-loader'
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template:'./src/index.html'
        })
    ],
    mode:'development',

    // 开发服务器 devServer: 用来自动化(自动编译,自动打开浏览器,自动刷新浏览器)
    // 特点:只会在内存中编译打包,不会有任何输出
    // 启动devServer指令为:npx webpack serve
    devServer:{
        // 项目构建后的路径
        contentBase:resolve(__dirname,'build'),
        // 启动gzip压缩
        compress:true,
        // 指定端口号
        port:3000, 
        // 自动打开浏览器
        open:true
    }
}
  1. 运行指令 npx webpack serve
    注意:如果我们用的是 webpack5.0版本,就用 npx webpack serve

总结:

以上就是对开发环境的打包样式资源,打包html资源,打包图片资源,打包其它资源,devServer的总结
其中,大部分配置都在以上注释中给出解释

  • 运行项目的两个指令:
    webpack 会将打包结果输出出去 (build文件夹)
    npx webpack serve 只会在内存中编译打包,没有输出(webpack5.0版本有效)
  • loder 和 plugin 的不同: (plugin 一定要先引入才能使用)
    loader: 1.下载 2.使用 (配置 loader)
    plugins: 1.下载 2. 引入 3. 使用

以上就是今天的学习总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值