前端构建工具(webpack&vite)

这里写目录标题

构建工具

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

webpack介绍

src 是把所有的源码放在了这个src 里面。

我们使用打包工具的前提是这个项目得是一个node项目,所以我们在使用webpack要先把项目初始一下 yarn init -y ,会出现一个package.json,初始化就完事了。然后就安装依赖 yarn add -D webpack webpack-cli . -D表示的是开发依赖,区分一下是开发的时候要用的还是运行的时候要用的。然后再项目中创建src 目录,然后编写代码,index.js是默认主目录,是入口文件。然后执行''yarn webpack 来对代码进行打包,打包好观察dist目录。dist目录就是打包后的版本。dist目录里有个main.js,就是打包后的代码,index.js是源码。webpack-cli 是命令行工具,没有安装不能用yarn webpack打包。

配置文件简介

webpack.config.js是给node.js看的,所以要遵循node的模块化规范。怎么区分,src 以内的遵循前端规则,src以外的遵循node的开发规范。

entry

entry 是用来指定打包时的主文件(入口文件 ) 默认是 ./src/index.js。一般不改。

output


loader

webpack默认情况下,只会处理js文件,如果我们希望它可以处理其他类型的文件,则要为期引入loader。loader 让 webpack 能够去处理其他类型的文件(默认只能处理js文件),并将它们转换为有效 模块,以供应用程序使用,以及被添加到依赖图中。

使用步骤:

1.安装对应的loader: yarn add css-loader style-loader -D .

2.配置方式:

css-loader 只负责打包,style-loader 负责渲染生效【单一职责原则】

loader 执行顺序为从后向前执行,因此use的数组顺序不能调换

babel

在编写js代码时,经常需要使用一些js中的新特性,而新特性在旧的浏览器中兼容性并不好。此时就导致我们无法使用一些新的特性。babel就是这样一个工具,可以将新的js语法转换为旧的js,以提高代码的兼容性。

使用步骤

1.安装 npm install -D babel-loader @babel/core @babel/preset-env

2.配置

javascript 复制代码
module: {
  rules: [
    {
      test: /\.m?js$/,
      exclude: /(node_modules|bower_components)/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: ['@babel/preset-env']
        }
      }
    }
  ]
}

3.在package.json中设置兼容列表

插件

常用插件

html-webpack-plugin

这个插件可以在打包代码后,自动在打包目录生成html页面

使用步骤:

1.安装依赖 yarn add -D html-webpack-plugin

2.引入依赖 const HTMLPlugin = require("html-webpack-plugin")

3.配置插件

开发服务器(webpack-dev-server)

安装:yarn add -D webpack-dev-server

启动:yarn webpack server--open (--open 表示启动服务器后自动打开浏览器)

配置 webpack-watch 执行,(在本地文件夹中访问)代码发生变化时自动更新打包。

可以在package.json中配置

1.先用yarn add-D webpack-dev-server 安装一下

2.就可以启动了,在命令行打yarn webpack server

3.就会把我们的代码布置在一个服务器中

4.直接访问这个地址就行了

注意:在执行开发服务器之后,一定要在手动的执行yarn webpack,然后才能把打包的东西放在服务器里,不然可能拿到的不是最新的

soureMap

devtool:"inline-source-map" 把我们的源码和编译后的这种代码给我们做成了一个映射

vite

概念

vite也是前端的构建工具

相较于webpack,vite采用了不同的运行方式:

开发时,不对代码打包,而是采用ESM(ES模块)的方式来运行项目

在项目部署时,再对项目进行打包

vite的速度比webpack要快很多,使用也很方便(都配置好了)

本质上vite和webpack是打包工具,只是webpack比较底层,需要自己手动去配置。

ESM必须通过url加载页面(也就是通过服务器运行,不是本身文件)
基本使用

1.安装开发依赖 yarn add -D vite

2.vite的源码目录默认就是项目的根目录

再页面中引入js文件的时候要指定 type = 'module'

修改路径直接在script 标签中修改src属性正确即可(webpack需要配置)

3.开发命令:

vite 启动开发服务器

vite bulid 打包代码

vite preview 预览打包后代码

4.使用命令构建项目

5.使用插件

需要使用ES6的模块化(export default)去暴露文件(区别webpack使用require)

相关推荐
代码搬运媛6 小时前
Jest 测试框架详解与实现指南
前端
counterxing6 小时前
Agent 跑起来之后,难的是复用、观测和评测
node.js·agent·ai编程
counterxing6 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
wangqiaowq7 小时前
windows下nginx的安装
linux·服务器·前端
之歆7 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜7 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
Maimai108087 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
kyriewen9 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
humcomm9 小时前
元框架的工作原理详解
前端·前端框架
canonical_entropy10 小时前
Attractor Before Harness: AI 大规模开发的方法论
前端·aigc·ai编程