webpack

目录

一、webpack认识

二、webpack使用步骤

1.初始化包环境

2.安装依赖包

3.配置scripts(在package.json)

4.webpack使用

(1)新建src文件夹

tool.js

(2)index.js 引入业务模块

(3)执行yarn bulid 自定义命令,进行打包(要确保终端路径在src父级文件夹)

 二、webpack修改出口和入口

三、案例-隔行变色

 四、打包html文件-使用_html-webpack-plugin插件

1.下载插件

2. webpack.config.js添加配置

3.终端运行yarn  build

五、打包css文件-webpack-使用加载器

1.下载加载器

2. webpack.config.js配置

3.新建css文件

4.在入口文件main.js中导入css文件

5.终端运行yarn  build

六、打包less文件-less-loader加载器

1.下载插件

2. webpack.config.js配置

3.新建less文件

4.在入口文件main.js中导入less文件

5.终端运行yarn  build

七、处理图片文件

1.在webpack.config.js配置

2.新建图片文件

3.在less或css中使用图片

 4.main.js中引入图片文件

八、打包字体图标

1.在webpack.config.js配置

2.新建字体图标文件

 3.main.js中引入字体图标

九、babel降级js语法-加载器

1.下载加载器

2.在webpack.config.js配置

3.main.js中写入

4.终端运行yarn  build

十、webpack开发服务器

1、下载模块包

2、在package.json中加入

3.启动当前工程里的webpack开发服务器

4.重新编写代码,观察控制台和浏览器是否自动打包和更新

5、修改服务器端口号,默认8080

 修改出入口文件


一、webpack认识

什么是webpack呢? 作用是什么? 目的是?

       1. 它是一个模块包

       2. 识别代码, 翻译, 压缩, 整合打包

       3. 提高打开网站的速度

二、webpack使用步骤

1.初始化包环境

yarn init

2.安装依赖包

yarn add webpack webpack-cli -D

3.配置scripts(在package.json)

{
  "name": "base",
  "version": "1.0.0",
  "main": "index.js",
  "author": "uylee",
  "license": "MIT",
  "devDependencies": {
    "webpack": "^5.74.0",
    "webpack-cli": "^4.10.0"
  },
  "scripts":{
      "build":"webpack"
  }
}

使用yarn build 打包压缩文件

4.webpack使用

(1)新建src文件夹

    src下新建index.js和业务文件

    业务js文件要导出

add.js

export const addFn = (a, b) => a + b;

tool.js

export const getArrSum = (arr) => arr.reduce((sum, val) => (sum += val), 0);

(2)index.js 引入业务模块

//webpack打包的入口
import { addFn } from "./add/add";
import { getArrSum } from "./tool/tool";
console.log(add(5, 2));
console.log(getArrSum([6, 12, 45]));

(3)执行yarn bulid 自定义命令,进行打包(要确保终端路径在src父级文件夹)

 二、webpack修改出口和入口

    在webpack.config.js文件修改

配置文档: https://webpack.docschina.org/concepts/#entry

const path = require("path");

module.exports = {
  entry: "./src/main.js", //入口
  output: {
    //出口
    path: path.resolve(__dirname, "dist"), //出口路径文件夹名字
    filename: "bundle.js", //出口文件名字(代码打包进这里)
  },
};

src下的入口文件要重命名为main.js

运行yarn  build后会自动生成打包文件

三、案例-隔行变色

新建业务index.html

 <ul id="myUL">
      <li>我是第1个li</li>
      <li>我是第2个li</li>
      <li>我是第3个li</li>
      <li>我是第4个li</li>
      <li>我是第5个li</li>
      <li>我是第6个li</li>
      <li>我是第7个li</li>
      <li>我是第8个li</li>
      <li>我是第9个li</li>
      <li>我是第10个li</li>
    </ul>

 导入jquery,写入js代码

// 1.yarn add jquery
// 2.public/index.html
// 3.入口处引入jquery
import $ from "jquery";
$("#myUL>li:odd").css("color", "red");
$("#myUL>li:even").css("color", "green");

 导入jquery后,package.json里有记录

 四、打包html文件-使用_html-webpack-plugin插件

配置文档: https://webpack.docschina.org/plugins/html-webpack-plugin/

1.下载插件

yarn add html-webpack-plugin -D

2. webpack.config.js添加配置

const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {
  entry: "./src/main.js", //入口
  output: {
    //出口
    path: path.resolve(__dirname, "dist"), //出口路径文件夹名字
    filename: "bundle.js", //出口文件名字(代码打包进这里)
  },
  plugins: [
    new HtmlWebpackPlugin({
      //plugins插件配置
      template: "./public/index.html", //告诉webpack使用插件时,以我们自己的html文件作为模板去生产dist/html文件
    }),
  ],
};

3.终端运行yarn  build

五、打包css文件-webpack-使用加载器

css-loader 文档: https://webpack.docschina.org/loaders/css-loader/

style-loader文档: https://webpack.docschina.org/loaders/style-loader/

css-loader 让webpack能处理css类型文件, style-loader 把css插入到DOM中

1.下载加载器

yarn add css-loader style-loader -D

2. webpack.config.js配置

module.exports = {
  module: {
    // 加载器配置
    rules: [
      // 一个具体的规则对象
      {
        test: /\.css$/i, // 匹配.css结尾的文件
        use: ["style-loader", "css-loader"], // 让webpack使用者2个loader处理css文件
        // 从右到左的, 所以不能颠倒顺序
        // css-loader: webpack解析css文件-把css代码一起打包进js中
        // style-loader: css代码插入到DOM上 (style标签)
      },
    ],
  },
};

3.新建css文件

4.在入口文件main.js中导入css文件

// 导入css文件
import "./css/index.css";

5.终端运行yarn  build

六、打包less文件-less-loader加载器

less-loader文档: https://webpack.docschina.org/loaders/less-loader/

less-loader作用: 识别less文件, less 作用: 将less编译为css

1.下载插件

yarn add less less-loader -D

2. webpack.config.js配置

module.exports = {
  
  module: {
    // 加载器配置
    rules: [
      // 一个具体的规则对象
      {
        test: /\.less$/i,
        use: [
          // compiles Less to CSS
          "style-loader",
          "css-loader",
          "less-loader",
        ],
      },
    ],
  },
};

3.新建less文件

4.在入口文件main.js中导入less文件

//导入less文件
import "./less/index.less";

5.终端运行yarn  build

七、处理图片文件

 webpack5, 使用asset module技术实现字体文件和图片文件处理, 无需配置额外loader

文档: https://webpack.docschina.org/guides/asset-modules/

以前用url-loader和file-loader来处理, 现在webpack.config.js – 针对图片文件设置type: “assets“

1.在webpack.config.js配置

module.exports = {
 
  module: {
    // 加载器配置
    rules: [
      // 一个具体的规则对象
     
      {
        // 图片文件的配置(仅适用于webpack5版本)
        test: /\.(gif|png|jpg|jpeg)/,
        type: "asset", // 匹配上面的文件后, webpack会把他们当做静态资源处理打包
        // 如果你设置的是asset模式
        // 以8KB大小区分图片文件
        // 小于8KB的, 把图片文件转base64, 打包进js中
        // 大于8KB的, 直接把图片文件输出到dist下
      },
    ],
  },
};

2.新建图片文件

3.在less或css中使用图片

@size:30px;
li{
  font-size: @size;
}
body{
   background: url(../assets/logo_small.png) no-repeat center; 
}

 4.main.js中引入图片文件

//引入图片文件
import imgObj from "./assets/1.gif";
let theImg = document.createElement("img");
theImg.src = imgObj;
document.body.appendChild(theImg);

八、打包字体图标

1.在webpack.config.js配置

module.exports = {
 
  module: {
    // 加载器配置
    rules: [
      // 一个具体的规则对象
     {
        // 配置字体图标
        test: /\.(eot|svg|ttf|woff|woff2)$/,
        type: "asset/resource", // 所有的字体图标文件, 都输出到dist下
        generator: {
          // 生成文件名字 - 定义规则
          filename: "fonts/[name].[hash:6][ext]", // [ext]会替换成.eot/.woff
        },
      },
    ],
  },
};

2.新建字体图标文件

 3.main.js中引入字体图标

//打包字体图标
import "./assets/fonts/iconfont.css";
let theI = document.createElement("i");
theI.className = "iconfont icon-qq";
document.body.appendChild(theI);

九、babel降级js语法-加载器

babel官网: https://www.babeljs.cn/ babel-loader

文档: https://webpack.docschina.org/loaders/babel-loader/

babel: 一个javascript编译器, 把高版本js语法降级处理输出兼容的低版本语法,

babel-loader: 可以让webpack转译打包的js代码

1.下载加载器

yarn add babel-loader @babel/preset-env webpack -D

2.在webpack.config.js配置

module.exports = {
 
  module: {
    // 加载器配置
    rules: [
      // 一个具体的规则对象
     
      {
        test: /\.m?js$/,
        exclude: /(node_modules|bower_components)/, // 不去匹配这些文件夹下的文件
        use: {
          loader: "babel-loader", // 使用这个loader处理js文件
          options: {
            // 加载器选项
            presets: ["@babel/preset-env"], // 预设: @babel/preset-env 降级规则-按照这里的规则降级我们的js语法
          },
        },
      },
    ],
  },
};

3.main.js中写入

//bable降级js语法
const fn = () => {
  console.log("箭头函数");
};
console.log(fn);

4.终端运行yarn  build

十、webpack开发服务器

webpack-dev-server文档: https://webpack.docschina.org/configuration/dev-server/

1、下载模块包

yarn add webpack-dev-server -D

2、在package.json中加入

 "scripts": {
    "build": "webpack",
    "serve": "webpack serve"
  },

3.启动当前工程里的webpack开发服务器

yarn serve   

在浏览器中打开http://localhost:8888/可浏览自己写的网页

4.重新编写代码,观察控制台和浏览器是否自动打包和更新

5、修改服务器端口号,默认8080

module.exports = {
 
  // 改变开发服务器端口号
  devServer: {
    port: 8888,
  },
};

 修改出入口文件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值