构建工具webpackvite

在这里插入图片描述

1. webpack

使用步骤:
1.初始化项目yarn init -y(也可以是npm其他包管理工具)
2.安装依赖webpack webpack-cli:yarn add -D webpack webpack-cli(-D是只用于开发时候加)
3.在项目中创建src目录,然后编写代码
4.yarn webpack打包项目代码 观察dist目录
*注意:
1.src里的是源码用的是前端规范(比如导出:export default),dist是打包后的代码
2.安装jquery:yarn add jquery
jquery在生产的时候也要用到因此不加-D
3.webpack是打包工具是给node看的,配置文件(webpack.config.js)这里要遵循node的模块化规范(导出:module.exports={})
(简单记忆:只有src是前端规范其余都是node)
4.webpack会遍历代码判断代码会不会执行,只有会执行的代码才会被打包进main.js
在引入jquery时由于jquery包里执行了函数也会被打包进去
5.

<!-- defer异步执行代码 ,等html里的代码执行完,再执行scriptasync异步执行代码,不等html里的代码执行完,就执行script--><script defer src="main.js"></script>

==webpack文档==

配置文件

在这里插入图片描述

entry

用来指定打包时的主文件(入口文件)默认是./src/index.js

module.exports={mode:'production',//设置打包模式:development:开发模式;production:生产模式entry:'./src/index.js',//指定入口文件}// 打包多个入口文件两种方式(了解):entry:['./src/index.js','./src/other.js'],entry:{index:'./src/index.js',other:'./src/other.js'},

output

配置代码打包后的地址

    output:{path:__dirname+'/dist',//输出路径filename:'main.js',//打包后的文件名clean:true,//打包前先清空dist目录}

loader加载器

webpack默认只能处理js文件,处理其他类型文件可以引入对应的loader

以css为例使用步骤:
1.安装:

yarn add css-loader -D
yarn add style-loader -D

2.配置:
use:指定loader,数组中loader执行顺序:从右到左,从下到上(数组进栈 先进后出)

module:{rules:[//rules规则:数组中存放的是对象,对象中配置loader多个规则{test:/\.css$/i,//正则表达式,匹配文件名use:['style-loader',//使css打包后生效'css-loader',//可以打包但不会生效'postcss-loader']},{test:/\.(jpg)|(png)|(gif)$/i,type:'asset',/*图片直接资源类型的数据可以通过type类型处理asset:asset/resource:将文件原封不动的打包到输出目录中,asset/inline:将文件打包成base64的格式打包到输出目录中,*/},]} 

别忘了css等文件需要引入入口文件中
在这里插入图片描述

babel

在这里插入图片描述
可以将新的js语法转化为旧的js,以提高代码的兼容性

我们如果希望在webpack支持babel,则需要向webpack中引入babel的loader
使用步骤
1.安装npm install-D babel-loader @babel/core Qbabel/preset-env
babel-loader:连接webpack和babel的中间件
@babel/core:babel的转换核心
@babel/preset-env:预设环境
2.配置:

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

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

"browserslist":["defaults"
]

browerslist了解更多

插件plugin

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

1.安装依赖yarn add -D html-webpack-plugin
2.引入依赖const HTMLPlugin = require(“html-webpack-plugin”)
在这里插入图片描述
template以路径的html为模板生成打包后的html,

开发服务器

1.yarn webpack --watch在代码改变的时候会自动打包
2.yarn add -D webpack-dev-server安装webpack的一个开发服务器
3.yarn webpack server–open启动webpack的一个开发服务器,自动在浏览器中打开

soureMap

devtool:“inline-Source-map”
设置代码映射,运行的是打包后的,调试可以对源码进行调试

2. vite

概念:
webpack遇到的问题:当文件够大时打包速度很慢,导致开发效率低

  • Vite也是前端的构建工具,相较于webpack,Vite采用了不同的运行方式:
    1.开发时,并不对代码打包,而是直接采用**ESM(ES模块)**的方式来运行项目
    2.在项目部署时,再对项目进行打包

  • 除了速度外,Vite使用起来也更加方便(开箱即用,都配置好了)

  • 本质上 Vite 和 Webpack 是打包工具,只是 Webpack 比较底层,需要自己手动去配置。
    ESM 必须通过 url 加载页面(即需要通过服务器运行)

基本使用:

  1. 安装开发依赖 Vite yarn add -D vite
  2. Vite 的源码目录默认就是项目根目录
    2.1.在页面中引入 js 文件的时候要指定 type=“module”
    2.2.修改路径直接在 script 标签中修改 src 属性正确即可(webpack需要配置)
  3. 开发命令:
    vite 启动开发服务器
    vite build 打包代码
    vite preview 预览打包后代码

使用命令构建项目:
npm create vite@latest #使用 NPM
yarn create vite #使用 Yarn
pnpm create vite #使用 PNPM
#Vanilla 表示原生JS开发项目

使用插件:
1.安装插件:npm add -D @vitejs/plugin-legacy

@vitejs/plugin-legacy:兼容传统浏览器的语法转换插件

2.配置文件:vite.config.js

// vite.config.js
import legacy from '@vitejs/plugin-legacy'	//引入插件
import { defineConfig } from 'vite'	//语法提示(可选)
export default defineConfig({	//写上defineConfig配置时会有提示plugins: [	//配置插件legacy({targets: ['defaults', 'IE 11'],	//配置兼容版本}),],
})
需要使用ES6的模块化(export default)去暴露文件(区别于 webpack 使用require)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/45016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发编码规范笔记

前言 &#xff08;1&#xff09;该博客仅用于个人笔记 格式转换 &#xff08;1&#xff09;查看是 LF 行尾还是CRLF 行尾。 # 单个文件&#xff0c;\n 表示 LF 行尾。\r\n 表示 CRLF 行尾。 hexdump -c <yourfile> # 单个文件&#xff0c;$ 表示 LF 行尾。^M$ 表示 CRLF …

element-ui操作表格行内容如何获取当前行索引?

需求&#xff1a; 根据每个用户的提交次数、撤回次数&#xff0c;动态计算出实际次数&#xff0c;并且提交次数不能小于撤回次数 <template><div><el-table:data"tableData"style"width: 80%"border><el-table-columnprop"date&…

怎么提高音频的播放速度?可以提高音频播放速度的四种方法推荐

怎么提高音频的播放速度&#xff1f;提高音频的播放速度是一种有效的策略&#xff0c;可以显著节省时间和提升信息获取的效率。随着信息量不断增加和学习需求的多样化&#xff0c;快速播放音频已成为许多人在日常生活和工作中的常见做法。这种方法不仅可以用于提高学习效率&…

C语言 指针和数组——指针数组的应用:命令行参数

目录 命令行参数 演示命令行参数与main函数形参间的关系 命令行参数  什么是 命令行参数&#xff08; Command Line Arguments &#xff09;&#xff1f;  GUI 界面之前&#xff0c;计算机的操作界面都是字符式的命令行界面 &#xff08; DOS 、 UNIX 、 Linux &…

曹操的五色棋布阵 - 工厂方法模式

定场诗 “兵无常势&#xff0c;水无常形&#xff0c;能因敌变化而取胜者&#xff0c;谓之神。” 在三国的战场上&#xff0c;兵法如棋&#xff0c;布阵如画。曹操的五色棋布阵&#xff0c;不正是今日软件设计中工厂方法模式的绝妙写照吗&#xff1f;让我们从这个神奇的布阵之…

C++ 【 PCL 】点云添加随机均匀噪声及源代码

PCL向点云添加均匀随机噪声&#xff1a; #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/common/random.h>int main() {// 加载点云文件pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::Poi…

服务器数据恢复—同品牌不同系列服务器raid5阵列数据恢复方案分析

RAID5磁盘阵列数据恢复案例一&#xff1a; 服务器数据恢复环境&#xff1a; 一台某品牌LH6000系列服务器&#xff0c;通过NetRaid阵列卡将4块硬盘组建为一组RAID5磁盘阵列。操作系统都为Window server&#xff0c;数据库是SQLServer。 服务器故障&#xff1a; LH6000系列服务器…

Python实现傅里叶级数可视化工具

Python实现傅里叶级数可视化工具 flyfish 有matlab实现&#xff0c;我没matlab&#xff0c;我有Python&#xff0c;所以我用Python实现。 整个工具的实现代码放在最后,界面使用PyQt5开发 起源 傅里叶级数&#xff08;Fourier Series&#xff09;由法国数学家和物理学家让-巴…

python3读取shp数据

目录 1 介绍 1 介绍 需要tmp.shp文件和tmp.dbf文件&#xff0c;需要安装geopandas第三方库&#xff0c;python3代码如下&#xff0c; import geopandas as gpdshp_file_path "tmp.shp" shp_data gpd.read_file(shp_file_path) for index, row in shp_data.iterro…

异步任务中传递用户信息的一种优雅写法

目录 前言基础写法测试示例 升级写法测试示例 前言 在异步任务中&#xff0c;我们通常会遇到子任务获取当前用户的场景。我们可能会采取ThreadLocal来存储主线程传递的用户信息。然后在业务开始时set&#xff0c;业务结束时remove&#xff0c;来保证不会出现OOM的场景。 基础…

数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比

开源生态 众所周知&#xff0c;MySQL主备库&#xff08;两节点&#xff09;一般通过异步复制、半同步复制&#xff08;Semi-Sync&#xff09;来实现数据高可用&#xff0c;但主备架构在机房网络故障、主机hang住等异常场景下&#xff0c;HA切换后大概率就会出现数据不一致的问…

Vue打包文件dist放在SpringBoot项目下运行(正确实现全过程)(下)

在上一篇中&#xff0c;实现了Vue打包文件dist放在SpringBoot项目下运行。 Vue打包文件dist放在SpringBoot项目下运行&#xff08;正确实现全过程&#xff09;&#xff08;上&#xff09; 问题 路由刷新会产生404的问题。 原因 vue开发的应用&#xff0c;采用的是SPA单页…

【Linux网络】网络基础

本篇博客整理了 Linux 网络编程的前置知识&#xff0c;例如网络的发展、协议和协议栈分层、网络通信原理、网络地址等&#xff0c;为后续进入 Linux 网络编程作铺垫。 目录 一、网络发展 二、网络协议 1&#xff09;协议的作用 2&#xff09;协议栈 3&#xff09;协议分层…

大吉大利杯_RE

A-Maze-In 一道比较新颖的 maze 题吧&#xff0c; 地图长度是 256 32 * 8 &#xff1f; 不知道了 0.0 难崩&#xff0c;看了一下 wp 说map长度什么的都有&#xff0c;应该就是 16 * 16的 看了一圈&#xff0c;感觉还是要把 DFS&#xff0c;BFS 算法学一下&#xff0c;直接跑…

中国内陆水体氮沉降数据集(1990s-2010s)

全球大气氮沉降急剧增加对内陆水生态系统产生不良影响。中国是全球三大氮沉降热点地区之一&#xff0c;为了充分了解氮沉降对中国内陆水体的影响&#xff0c;制定合理的水污染治理方案&#xff0c;我们需要清楚的量化内陆水体的氮沉降通量。为此&#xff0c;我们利用LMDZ-OR-IN…

Lambda表达式与函数式工具应用详解

在现代编程中&#xff0c;Lambda表达式和函数式工具是处理数据、实现简洁代码的重要工具。尤其是在函数式编程范式中&#xff0c;它们发挥着至关重要的作用。本文将从定义、语法、应用场景到具体案例&#xff0c;详细阐述Lambda表达式和函数式工具在Python和Java等编程语言中的…

Syslog 管理工具

Syslog常被称为系统日志或系统记录&#xff0c;是一种用来在互联网协议&#xff08;TCP/IP&#xff09;的网上中传递记录档消息的标准&#xff0c;常用来指涉实际的Syslog 协议&#xff0c;或者那些提交syslog消息的应用程序或数据库。 系统日志协议&#xff08;Syslog&#x…

VBA即用型代码手册:删除完全空白的行

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率&#xff0c;而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。 作为我的学员要利用我的积木编程思想&#xff0c;积木编程最重要的是积木如何搭建…

星辰考古:TiDB v4.0 进化前夜

前情回顾TiDB v4 时间线TiDB v4 新特性 TiDBTiKVPDTiFlashTiCDCTiDB v4 兼容性变化 TiDBTiKVPD其他TiDB 社区互助升级活动TiDB 3.0.20 升级到 4.0.16 注意事项升级速览直观变化总结素材来源&#x1f33b; 往期精彩 ▼ 前情回顾 在前面的章节中&#xff0c;我们共同梳理了 TiDB …

BUCK电源芯片,电气参数,极限参数,工作特性,引脚功能

概述 在应用DC-DC开关电源芯片时&#xff0c;通常需要关注以下参数&#xff0c;同步与非同步&#xff0c;输入电压&#xff0c;输入电流&#xff0c;输出电压&#xff0c;输出电流&#xff0c;输入输出电容的选择&#xff1b;mosfet选型&#xff0c;电感选型&#xff0c;功耗&a…