Vue基础铺垫 package

下载yarn
下载:yarn add 包
移除:yarn remove 包

1.初始化 yarn init 
安装webpack依赖包  yarn add webpack@5.31.2 webpack-cli@4.6.0 -D
配置自定义命令:在package.json中加入
scripts: {
"build": "webpack"
}

2.webpack的基本使用
导出export
导入import
yarn build
更新打包,会自动覆盖原dist,  结果压缩极致
3.修改配置
创建webpack.config.js文件
const path=require("path")
module.exports = {
    entry: "./src/main.js",                          // enter: 入口(默认)
    output: { 
        path: path.join(__dirname, "dist"),   // 出口"文件夹"名(默认)
        filename: "bundle.js"                       // 出口"文件"名
    }
}
4.webpack打包流程

5.在浏览器上输出html页面

由于浏览器不支持import语法,处理方法:

将webpack翻译打包后输出到bundle.js再引用

html页面引入翻译打包后的js即可正常使用

6.webpack插件,自动生成html文件

下载:yarn add html-webpack-plugin@5.3.1  -D

配置:webpackage.config.json

// 引入自动生成 html 的插件
const HtmlWebpackPlugin = require('html-webpack-plugin') 

module.exports = {
    // ...省略其他代码
    plugins: [//插件
        new HtmlWebpackPlugin({
            // 以此为基准生成打包后html文件
            template: './public/index.html' 
        })
    ]
}

 

重新打包后观察dist下:

  • 自动生成html文件

  • 自动引入打包后js文件

7.webpack-加载器-处理css,less文件

 1.原因:webpack默认只识别js文件

所以能需要一个loader来支持这种类型文件, 解析css,less代码

2.下载style loader ,less loader less loader加载程序

yarn add css-loader@5.2.1 style-loader@2.0.0  -D

 yarn add less@4.1.1 less-loader@8.1.0 -D

3.配置文件,在webpackage.config.json中配置文件

 module: {//模块
        // 如何处理项目中不同模块文件  加载器loader
        rules: [
            // 规则
            {
                test: /\.css$/i, // 匹配所有的css文件
                // use数组里从右向左运行
                // 先用 css-loader 让webpack能够识别 css 文件的内容并打包
                // 再用 style-loader 将样式, 把css插入到dom中
                use: ["style-loader", "css-loader"],
            },
            {
                test: /\.less$/i, // 匹配.less结尾文件
                // 使用less-loader, 让webpack处理less文件, 内置还会用less模块, 翻译less代码 
         成css代码  //从左到右执行不能改顺序
                use: ["style-loader", "css-loader", "less-loader"],
            }
        ],
    }

8.webpack-加载器-处理图片文件差异

1.把小图片用做背景图 ,大图插入到创建的img标签上, 添加body上显示

 小于8kb的, 转成data URI片转成base64字符串打包进js中)
 大于8kb的, 直接复制文件到dist目录下(因为转base64会体积增30%)

好处: 减少http请求次数

大图插入如图所示:

// 引入图片-使用
import imgUrl from './assets/1.gif'
const theImg = document.createElement("img")
theImg.src = imgUrl
document.body.appendChild(theImg)

配置如下

module: {
    rules: [ 
        // ...省略其他
        {
            test: /\.(png|jpg|gif|jpeg)$/i, // 匹配图片文件
            type: 'asset' // 在导出一个 data URI 和一个单独的文件之间自动选择
            // 小于8kb的, 转成data URI(图片转成base64字符串打包进js中)
            // 大于8kb的, 直接复制文件到dist目录下(因为转base64会体积增30%)
        }
    ]
}

9.webpack-加载器-处理字体文件

1.引入字体图标文件
import './assets/fonts/iconfont.css'

2.webpack.config.js 配置

{ 
    test: /\.(eot|svg|ttf|woff|woff2)$/,
    type: 'asset/resource',  // 当做静态资源直接复制文件
    generator: {
    	filename: 'font/[name].[hash:6][ext]' // 放到dist/font文件夹, 文件名格式如左
          // [name] 占位符-还使用源文件的名字
          // [hash:6] 随机产生6位的hash值-防止跟别的文件重名
          // [ext] 占位符-使用源文件的扩展名 (.ttf / .woff)
    }
}

3.实现

首先有字体图标文件,再通过main.js引入


import "./assets/fonts/iconfont.css"
const theI = document.createElement('i')
theI.className = 'iconfont icon-qq'
document.body.appendChild(theI)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值