熟悉webpack

首先,了解一下webpack是什么

webpack是一中前端资源构造工具,一个静态模块打包器

 

webpack的五个核心概念

1、entry(入口),以那个文件作为起点开始打包

2、output(出口),输出知识webpack打包后的资源,bundles输出到哪去,以及命名

3、module中的loader, 让webpack能够去处理那些非JavaScript文件(让webpack自身只理解JavaScript)

4、plugin(插件),可以用于执行范围更广的任务。包括从打包优化和压缩,一直到重新定义环境中的变量

5、mode,指示相应模式配置

 

开始配置

1、初始化项目 npm init

2、下载 webpack

        npm i webpack-cli -g

        npm i webpack-cli -D

3、运行指令

        开发: webpack 入口文件的路径 -o 出口文件的路径 --mode=devlopment

        生产: webpack 入口文件的路径 -o 出口文件的路径 --mode=production

 

结论:

        1、能处理js/json,不能处理css/img等资源文件

        2、生产环境,将es6模块化编译成浏览器能识别的模块

        3、生产环境多一个压缩js代码

 

 

如何打包样式资源

1、创建webpack.config.js配置文件

        作用: 指示webpack干什么

        基于node.js平台运行模块化,默认采用common.js

 

module.export ={

        entry:  入口文件路径,

        output: {

                filename: 出口文件名字,

                path: resolve(__direname, 'build‘) 出口文件路径

        },

        // loader 的配置

        moudle: {  1、下载相关的加载器  2、使用加载器

                rules: [

                        {

                                test: /\.css$/,   匹配文件

                                use: [  // 执行顺序: 从右往左 或者 从下往上

                                           // 创建stylle标签,将js中的样式资源插入行,添加head中生效

                                        'style-loader',

                                        // 将文件cs变成commandjs模块,加载js中,里面内容是字符串

                                        'css-loader'

                                ]

                        }

                },

            plugins: [  1、下载相关的插件  2、引入插件  3、使用插件

                new HTMLWebpackPlugin ({

                        // 复制 /src/index.html, 并且自动引入并打包输出的所有资源(js/css)

                        template: './src/index.html'

                        })

                ] 

        }

 

 

打包图片资源 (处理样式的图片资源)

        下载url-loader

        在module中使用url-loader 

        module: {

                rules:[

                        {

                                test: /\.(jpg|jpeg|gif|png)$/,

                                loaders: ‘url-loader’,

                                options: {

                                        limit: 8* 1024, // 图片大小小于8kb,被base64处理

                                                1、优点 减少请求数量,减轻服务器的压力

                                                2、缺点  图片体积会更大,文件请求速度更慢

                                        name: '[hase:10].[ext],  // 取名字

                                        es6Module: false // 默认使用es6模块化解析,false关闭es6模块化解析

                                }

                       ]

        }

 

 

处理html的图片

module: {

        rules: [

                {

                        test: /\.html$/',

                         loader: 'html-loader',  // 处理html文件img图片,使用commonjs模块化解析

                         outputPath: 'img'  // 指定打包后的图片位置

                }

        ]

}

 

打包其他资源

1、引入css文件到js文件

2、导入其他文件

3、开始打包

module: {

        rules: [

                {

                        test: /\.css$/',

                         loader:[ 'style-loader', 'css-loader'] ,

                         outputPath: 'img'  // 指定打包后的图片位置

                },

                {

                        exclude: /\(css|js|html|less)$/, // 排除文件

                        loader: ‘file-loader’,

                        options: {

                                name: ‘[hash:10].[ext]'

                                }

                }

        ]

}

        

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值