构建工具webpackvite

news2024/9/20 1:07:28

在这里插入图片描述

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里的代码执行完,再执行script
     async异步执行代码,不等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.coloradmin.cn/o/1918672.html

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

相关文章

mov视频怎么改成mp4?把mov改成MP4的四个方法

mov视频怎么改成mp4&#xff1f;选择合适的视频格式对于确保内容质量和流通性至关重要。尽管苹果公司的mov格式因其出色的视频表现备受赞誉&#xff0c;但在某些情况下&#xff0c;它并非最佳选择&#xff0c;因为使用mov格式可能面临一些挑战。MP4格式在各种设备&#xff08;如…

Suricata引擎二次开发之命中规则定位

二开背景 suricata是一款高性能的开源网络入侵检测防御引擎&#xff0c;旨在检测、预防和应对网络中的恶意活动和攻击。suricata引擎使用多线程技术&#xff0c;能够快速、准确地分析网络流量并识别潜在的安全威胁&#xff0c;是众多IDS和IPS厂商的底层规则检测模块。 前段时间…

Python精神病算法和自我认知异类数学模型

&#x1f3af;要点 &#x1f3af;空间不确定性和动态相互作用自我认知异类模型 | &#x1f3af;精神病神经元算法推理 | &#x1f3af;集体信念催化个人行动力数学模型 | &#x1f3af;物种基因进化关系网络算法 | &#x1f3af;电路噪声低功耗容错解码算法 &#x1f4dc;和-…

下载设计免抠元素,就上这6个网站,免费下载!

寻找免费PNG免抠素材网站是创意设计者们探索的重要一环。这些网站提供了丰富的PNG格式素材&#xff0c;去除了背景&#xff0c;方便在不同项目中使用。精心挑选了6个免费PNG免抠素材网站&#xff0c;它们提供了高品质的素材资源&#xff0c;无论是个人设计还是商业项目&#xf…

Jetson-AGX-Orin 非docker环境源码编译安装CyberRT

Jetson-AGX-Orin 非docker环境源码编译安装CyberRT 1、安装依赖 sudo apt update sudo apt-get install g gdb gcc cmake sudo apt install libpoco-dev uuid-dev libncurses5-dev python3-dev python3-pip python3 -m pip install protobuf3.14.02、下载CyberRT源码 git cl…

从0开始的STM32HAL库学习4

对射式红外传感器计数复现 配置工程 我们直接复制oled的工程&#xff0c;但是要重命名。 将PB14设置为中断引脚 自定义命名为sensorcount 设置为上升沿触发 打开中断 配置NVCI 都为默认就可以了 修改代码 修改stm32f1xx_it.c 文件 找到中断函数并修改 void EXTI15_10_I…

mp3文件导入音乐乱码

在网上下载了beyond的mp3文件&#xff0c;发现看起来没问题&#xff0c;一旦加入到音乐软件就会乱码&#xff0c;看起来说因为音乐文件加载到元数据 思路参考了这个文章 解决Mac电脑音乐显示歌名的乱码问题_音频文件乱码-CSDN博客 不过这个只能解决名称乱码&#xff0c;我发…

Kodcloud可道云安装与一键发布上线实现远程访问详细教程

文章目录 1.前言2. Kodcloud网站搭建2.1. Kodcloud下载和安装2.2 Kodcloud网页测试 3. cpolar内网穿透的安装和注册4. 本地网页发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6.结语 1.前言 本文主要为大家介绍一款国人自研的在线Web文件管理器可道云&#xff0c;…

前端新手小白的React入坑指南

有个小伙伴跟我说&#xff0c;已经毕业了&#xff0c;开始实习了。但公司现在用的还是Vue&#xff0c;领导说是过段时间让他用React做项目&#xff0c;先自己学习起来。 我给他找了一些文档&#xff0c;顺便着呢&#xff0c;反正自己也写博客&#xff0c;自己也写一份吧&#x…

共集电极放大器+共基极放大器+放大器参数总结+单片机(全局/静态/动态变量+LED点阵初识+点亮LED并显示图形)

2024-7-11&#xff0c;星期四&#xff0c;18:38&#xff0c;天气&#xff1a;雨&#xff0c;心情&#xff1a;晴。终于下雨了&#xff0c;感受到了久违的凉爽&#xff0c;没有什么特殊的事情发生&#xff0c;继续学习啦&#xff0c;加油加油&#xff01;&#xff01;&#xff0…

君子签电子合同推动企业人事管理变革,降本提效

在日益复杂的人力资源管理领域&#xff0c;合同签署与管理成为HR面临的一大挑战。面对庞大的合同量、繁琐的审批流程、频繁的岗位变动以及离职时的合同管理难题&#xff0c;传统方式已难以满足高效、安全、合规的需求。 君子签针对HR面临的挑战和需求&#xff0c;打造智能合同…

如何定量选择孔销基准?-DTAS来帮你!

在当今快速发展的工程领域&#xff0c;公差仿真的作用日渐重要&#xff0c;在公差仿真中&#xff0c;基准体系的选择对于最终结果更是至关重要。基准体系不同可能导致仿真过程中的参数计算、误差分析以及最终的工程设计都有所不同。基准体系作为评估和比较的参照&#xff0c;直…

专业模板,轻松打造个性化产品册

​在当今竞争激烈的市场环境中&#xff0c;如何让你的产品在众多竞品中脱颖而出&#xff0c;吸引消费者的目光&#xff1f;专业模板为您提供了解决方案。通过轻松打造个性化产品册&#xff0c;让您的产品焕发出独特的魅力&#xff0c;赢得消费者的青睐。本文将结合实际案例和数…

C++中的虚函数:深入探究多态性

目录 ​编辑 引言 虚函数基础 纯虚函数与抽象类 虚函数与多态 虚析构函数 结论 引言 在C中&#xff0c;虚函数是实现多态性的关键机制&#xff0c;它允许我们编写更为灵活和可扩展的代码。通过虚函数&#xff0c;派生类可以提供不同的实现&#xff0c;而基类指针或引用…

面对频繁紧急修复,测试人员5大应对技巧!

频繁的紧急修复问题&#xff0c;经常会过多占用测试时间&#xff0c;影响正常测试周期和回归测试的完整性&#xff0c;不利于测试效率和质量的提高。因此为了更高效地处理此问题&#xff0c;测试人员可以采取以下5大策略来应对&#xff0c;以减少此类问题的发生并提高工作效率。…

王老师 linux c++ 通信架构 笔记(二)配置服务器为固定的 ip 地址、远程登录、安装 gcc g++ 与虚拟机文件夹共享

&#xff08;7&#xff09;本条目开始配置 linux 的固定 ip 地址&#xff0c;以作为服务器使用&#xff1a; 首先解释 linux 的网口编号&#xff1a; linux 命令 cd &#xff1a; change directory 改变目录。 ls &#xff1a; list 列出某目录下的文件 根目录文件名 / etc &a…

链接服务器“XX”的OLEDB访问接口“MSOLEDBSQL”返回了消息“登录超时已过期” 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 出现如下问题: 与链接服务器的测试连接失败。执行Transact-SQL 语句或批处理时发生了异常。命名管道提供程序:无法打开与SQL SERVER的链接[53]链接服务器“XX”的OLEDB访问接口“MSOLEDBSQL”返回了消息“登录超时已过期…

CV06_Canny边缘检测算法和python实现

1.1简介 Canny边缘检测算法是计算机视觉和图像处理领域中一种广泛应用的边缘检测技术&#xff0c;由约翰F坎尼&#xff08;John F. Canny&#xff09;于1986年提出。它是基于多级处理的边缘检测方法&#xff0c;旨在实现以下三个优化目标&#xff1a; 好的检测&#xff1a;尽…

如何录制屏幕视频?4款软件,轻松录屏

在数字化飞速发展的时代&#xff0c;如何录制屏幕视频已经成为我们工作、学习和娱乐中不可省略的一个重要问题。无论是制作教学教程还是录制游戏视频等&#xff0c;屏幕视频录制都为我们提供了极大的便利。今天&#xff0c;就让我们一起探索如何录制屏幕视频的精彩方式&#xf…

记录文字视差背景学习

效果图 文字背景会随鼠标上下移动变成红色或透明 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…