首页 > 其他分享 >《前端构建工具(webpack&vite)- 李立超》笔记

《前端构建工具(webpack&vite)- 李立超》笔记

时间:2023-04-01 19:00:15浏览次数:53  
标签:李立超 yarn js webpack vite loader 打包

1. 构建工具简介

1.1 模块化

最初我们都使用script标签来引入js,但当一个页面引入的js文件越来越多时,就产生了几个难以避免的问题:

  • 全局变量污染。
  • 变量重名。
  • js之间的依赖关系复杂,无法保证顺序。

而模块化规范就是为解决以上问题,模块内部的变量实现了在其他模块内共享。而且可以指定哪些变量、类或者函数可以共享。
主流的模块化规范包括CommonJS、AMD、CMD、UMD和ESM这几种,ESM是依赖于ES静态模块结构(ES6)的一种更为高效的模块规范;

1.2 ES6

在 ES6 之前的JavaScript 模块化都是支出动态加载的,也就意味着模块的导入导出可以在运行时动态的变化。ES6 推出自己的一套模块化格式就是为了能够实现静态模块结构。这就意味着在编译时就要确定导入和导出的内容,不允许在运行时发生变化。

1.3 构建工具

  • 习惯在 node 中编写代码后。重新在前端中编写html、css、js这些东西非常不方便,如不能放心的使用模块化规范(浏览器兼容性问题)。
  • 我们就迫切的希望有一款工具可以对代码进行打包,将多个模块打包成一个文件。这样一来即解决了兼容性问题,又解决了模块过多的问题。
  • 构建工具就起到这样一个作用,通过构建工具可以将使用 ESM 规范编写的代码转换为旧的 JS 语法,这样可以使得所有的浏览器都可以支持代码。

2. webpack

2.1 yarn

yarn其实就是一个包管理器,功能与npm功能类似。安装如下

  1. 安装yarn: npm install -g yarn
  2. 配置镜像源为淘宝:yarn config set registry https://registry.npm.taobao.org -g
  3. 初始化项目:yarn init -y

2.2 webpack使用步骤

  1. 初始化项目 yarn init -y
  2. 安装依赖webpack(核心代码)、webpack-cli(命令行工具) yarn add -D webpack webpack-cli。其中 -D 是表示 development,只在开发环境下生效,因为构建工具只需要在开发环境中使用。
  3. 在项目中创建src目录,然后编写代码(index.js)。
  4. 执行yarn webpack来对代码进行打包,打包后的文件会存放在dist文件夹下。加上-- wacth,就可以实现热更新,不用每次去build了。

2.3 webpack配置参数

生成 webpack.config.js 文件,在这其中我们使用 node.js 语法, 因为其需要给node 来执行。一般很少使用,需要用到时再来回顾吧。

const path = require("path")
// 引入html插件
const HTMLPlugin = require("html-webpack-plugin")

module.exports = {
    mode: "development", // 设置打包的模式,production表示生产模式  development 开发模式
    // entry: "./hello/hello.js", // 用来指定打包时的主文件 默认 ./src/index.js
    // entry: ["./src/a.js", "./src/b.js"],
    // entry: {
    //     a: "./src/a.js",
    //     b: "./src/b.js"
    // },
    // entry: "./src/a.js", 

    output: {
        // path: path.resolve(__dirname, "dist"), // 指定打包的目录,必须要绝对路径
        // filename: "main.js", // 打包后的文件名
        // filename:"[name]-[id]-[hash].js",
        clean: true // 自动清理打包目录
    }, // 配置代码打包后的地址
    /* 
    webpack默认情况下,只会处理js文件,如果我们希望它可以处理其他类型的文件,则要为其引入loader

    - 以css为例:
        - 使用css-loader可以处理js中的样式
        - 使用步骤:
            1.安装:yarn add css-loader -D
            2.配置:
                module: {
                    rules: [
                        {
                            test: /\.css$/i,
                            use: "css-loader"
                        }
                    ]
                }
*/
    module: {
        rules: [
            {
                test: /\.css$/i,
                use: ["style-loader", "css-loader"]
            },
            {
                test: /\.(jpg|png|gif)$/i,
                type: "asset/resource" // 图片直接资源类型的数据,可以通过指定type来处理
            },
            {
                test: /\.m?js$/,
                exclude: /(node_modules|bower_components)/,
                use: {
                    loader: "babel-loader",
                    options: {
                        presets: ["@babel/preset-env"]
                    }
                }
            }
        ]
    },

    plugins: [
        new HTMLPlugin({
            // title: "Hello Webpack",
            template: "./src/index.html"
        })
    ],

    devtool: "inline-source-map"
}

开发服务器

使用服务器的方式运行项目,而不是使用本地文件打开的方式,不用在服务器上刷新页面。

  1. 添加服务器包:yarn add -D webpack-dev-server
  2. 启动服务器:yarn webpack serve --opne, open 表示自动打开浏览器。

3. vite

3.1 vite简介

  • Vite 也是前端的构建工具。
  • 相较于 webpack,vite 采用了不同的运行方式:
    • 开发时,并不对代码打包,而是直接采用 ESM 的方式来运行项目。
    • 在项目部署时,在对项目进行打包。
  • 除了速度外,vite 使用起来也更加方便。

3.2 基本使用

  • yarn add -D vite 安装开发依赖 vite
  • 开发命令:
    • yarn vite 启动开发服务器
    • yarn vite build 打包代码
    • yarn vite preview 预览打包后代码

生成项目:

  1. 创建项目:yarn create vite
  2. 安装依赖:yarn

3.3 配置参数

import { defineConfig } from "vite"
import legacy from "@vitejs/plugin-legacy"

export default defineConfig({
    plugins: [
        legacy({
            targets: ["defaults", "ie 11"] //兼容性
        })
    ]
})

课程地址:《前端构建工具(webpack&vite)教程 李立超》

标签:李立超,yarn,js,webpack,vite,loader,打包
From: https://www.cnblogs.com/theheboy/p/17279117.html

相关文章

  • webpack逆向
    一、webpack大致处理流程方式一:手动处理先全局定义一个变量(比如aaa),用于接收加载器中的导出函数再定义一个全局变量(比如bbb),用于接收具体模块中的加密对象或方法补模块、环境(通过日志调试,根据报错信息去抠代码,技巧:数组索引操作可以转换为对象)手动调用加载,使得全局定义的变量......
  • webpack-使用篇
    1.新建项目后,安装webpacknpminstallwebpack-D//开发环境依赖npminstallwebpack-g//全局安装安装webpack-clinpmiwebpack-cli-g//全局安装webpack-cli不止需要安装webpack,还需要安装webpack-cli,因为webpack4后加了更多功能,所以需要加入webpack-cli依赖。......
  • webpack的基本使用(十)@ 表示路径
      使用@的目的是不想用./。用./可读性很差,用@可以更好。......
  • vue3 - 在单独的项目制作自定义组件插件,支持vite【前提不要使用webpack专属语法】
    1.背景与vue2组件不一样,没有那么随意,如果想要支持vite,那么不要使用webpack专属语法,如defide和 require等2.解决在 package.json文件属性  main配置为插件入口文件位置,至于是js还是ts随意 目录  简单做了个组件  入口文件内容如下importComponentf......
  • vue3+vite+ts 配置@时vscode报找不到__dirname的问题
    vue3+vite+ts配置@时vscode报找不到__dirname的问题-CSDN博客  原因:path模块是node.js的内置模块,而node.js默认不支持ts文件的解决:安装@type/node依赖包 npminstall@types/node--save-dev......
  • webpack的基本使用(八)CleanWebpackPlugin
    为了打包之前把dist底下的文件先删除了先,然后再进行打包,我们使用clean-webpack-plugin安装  配置 将构造函数放入webpackPlugin中进行  ......
  • webpack基本使用(七)build命令打包
        运行npmrunbuild后出现了dist的目录 此目录里面存放的就是要发布的代码。我们把dist打包,发给运维就可以进行发布了。 ......
  • webpack的基本使用(三)
       默认这两个文件都要有不然的话webpack打包的时候是回报错的              使用[email protected]......
  • webpack构建React、TSX项目(一)
    此篇主要是记录下webpack构建react项目的过程。前言:为什么想起来通过webpack去构建react的项目呢?现在可以通过cra或者vite或其他脚手架去构建比较省事。主要还是想要了解下w......
  • webpack的基本使用二
     新建空白文件夹作为项目文件的更目录,然后运行npminit-y2.在项目根目录中新建src源代码目录  3.在src目录下新建index.html和index.js脚本文件......