Vite:下一代前端构建工具的快速上手

Vite 是由 Vue.js 的作者尤雨溪开发的下一代前端构建工具,它以其快速的冷启动、按需编译和热更新能力而受到广泛关注。Vite 通过利用浏览器原生的 ES 模块导入功能,提供了几乎即时的开发环境启动速度和高度优化的开发体验。

安装 Vite

首先,确保你的系统中已安装 Node.js(推荐使用 LTS 版本)。然后,通过 npm 或 yarn 全局安装 Vite:

npm install -g create-vite
# 或者使用 yarn
yarn global add create-vite

创建新项目

使用 create-vite 命令创建一个新的 Vite 项目。这里以创建一个 Vue 项目为例:

create-vite my-vite-project --template vue
cd my-vite-project

这将初始化一个基于 Vue 3 的 Vite 项目。

开发与运行

在项目根目录下,运行以下命令启动开发服务器:

npm run dev
# 或者使用 yarn
yarn dev

Vite 会立即启动一个本地开发服务器,你可以在浏览器中访问 http://localhost:5173 查看你的应用。Vite 支持热模块替换(HMR),这意味着你在编辑代码时,浏览器页面会实时更新,无需刷新。

构建生产版本

当准备部署应用时,运行以下命令构建生产版本:

npm run build
# 或者使用 yarn
yarn build

这将生成一个优化过的、可用于生产的静态文件夹,通常位于 dist 目录下。

Vite配置

// vite.config.js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue'; // 假设我们使用Vue
import { resolve } from 'path';// 环境变量
const env = process.env.NODE_ENV === 'production' ? 'prod' : 'dev';export default defineConfig({// 应用的基础路径base: '/my-app/',// 项目入口文件root: './src',// 输出目录outDir: 'dist',mode: env,envPrefix: 'VITE_', // 所有以VITE_开头的环境变量将被注入到import.meta.env中envFile: `.env.${env}.local`, // 读取对应环境的.env文件// 动态导入polyfilloptimizeDeps: {include: ['@vue/reactivity'], // 强制包含动态导入的库},// 服务器配置server: {// 服务器端口port: 3000,// 是否开启HTTPShttps: false,// 开启热模块替换hmr: true,// 代理配置,用于API请求转发proxy: {'/api': {target: 'http://localhost:8000',changeOrigin: true,},},middlewareMode: true, // 开启中间件模式before(app) {app.use(async (ctx, next) => {ctx.body = 'Hello, this is a custom middleware!';await next();});},},// 构建配置build: {// 生产环境是否压缩代码minify: true,// 输出目录outDir: 'dist',// 资源文件存放目录assetsDir: 'assets',// chunk大小警告阈值chunkSizeWarningLimit: 500,rollupOptions: {input: 'src/main.js',output: {manualChunks(id) {if (id.startsWith('node_modules')) {return id.toString().replace(/(\.[a-z]+)|[\\/]/g, '_');}},},},},// 预处理器配置,如CSScss: {// CSS模块化modules: {generateScopedName: '[name]_[local]_[hash:base64:5]',},},// 预览环境配置preview: {port: 8080,},// 插件配置plugins: [// 可以在这里添加自定义或第三方插件],// 解析选项resolve: {extensions: ['.js', '.jsx', '.ts', '.tsx'],// 别名配置alias: {'@': '/src',},},// Esbuild配置,用于优化构建速度esbuild: {// 启用/禁用esbuild的tree shakingtreeShaking: true,jsxFactory: 'h',jsxFragment: 'Fragment',},transpileDependencies: ['my-dep'], // 指定需要转译的依赖// 额外的Rollup配置rollupOptions: {// 可以在这里添加Rollup的配置项},
});

Vite 的核心特性

  • 快速启动:Vite 利用浏览器的原生 ES 模块支持,无需打包即可快速启动开发服务器,显著提升了启动速度。
  • 按需编译:在开发模式下,Vite 只编译你正在查看的模块,大大加快了编辑-刷新的循环。
  • 热模块替换(HMR):Vite 提供了非常快速的 HMR 体验,几乎做到了无缝的实时更新。
  • 配置简单:Vite 的配置文件 vite.config.js 相较于 Webpack 更为简洁,降低了入门门槛。
  • 兼容性良好:Vite 支持多种框架,包括 Vue、React、Preact、Svelte 等,并且可以轻松适配自定义配置。
  • 插件系统:Vite 提供了强大的插件系统,允许开发者扩展其功能,满足特定项目需求。

进阶探索

  • 配置文件:虽然Vite的默认配置已经很强大,但你可以在 vite.config.js 中进行更多定制,如配置代理、别名、CSS预处理器等。
  • Vue DevTools:在开发Vue应用时,确保安装并启用Vue DevTools浏览器扩展,以便更好地调试应用状态。
  • TypeScript支持:如果项目中使用TypeScript,Vite已默认支持,你只需在项目中包含.ts或.tsx文件即可。
  • 优化:学习如何利用Vite的内置优化选项和外部插件,进一步提升应用性能。

2024年礼包2500G计算机入门到高级架构师开发资料超级大礼包免费送!

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

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

相关文章

2024年最新方法下载钉钉群直播回放

链接:百度网盘 请输入提取码 提取码:1234 --来自百度网盘超级会员V10的分享 1.首先解压好所有的压缩包,这个压缩包里面还套着一共逍遥一仙下载器压缩包,也解压 2.进入逍遥一仙下载器文件夹,打开M3U8 V1.4.8 0508.e…

TMS320F280049 CLB模块--FSM(3)

功能框图 FSM有效状态机内部框图如下图所示,可以看到内部有S0 / S1两个状态和下一状态的跳转查找表。还有个输出查找表。 下图是FSM LUT的示意框图。FSM还可以工作在3输入或4输入的查找表模式下。对于输入,EXTRA_EXT_IN1/0可以替换S0/1。 寄存器 参考文…

java基础教学 |Java Stream API详解

Java Stream API 是Java 8引入的一个重要特性,它为集合对象提供了一种新的计算模型,使得开发者能够以声明性的方式处理数据集合。Stream API 不仅提高了代码的可读性和简洁性,还极大地优化了并行处理能力,让复杂的集合操作变得高效…

将python库下载到本地安装—Pypi官网wheel版本选择详解—小白详解版

python库—本地安装文件下载🚀 在项目中需要在内网环境下配置python的环境,因此需要将用于安装python库的文件下载到本地传到内网环境当中然后再安装,通过这契机我开始了解了一下如何离线下载安装python的第三方库,以及配置本地的…

【Linux】环境变量是什么?如何配置?详解

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

深入理解JavaScript事件循环Event Loop:宏任务与微任务的奇幻之旅

🔥 个人主页:空白诗 文章目录 🎉 引言🌟 什么是事件循环?📚 「宏任务」 vs 「微任务」「宏任务」(Macrotask)「微任务」(Microtask)实际应用中的注意事项 🔀 执行流程概览📝 代码示例…

算法学习笔记(2)-前缀和

##前缀和 指的是某序列的前n项和,在数学上我们可以理解称为数列的前n项和。前缀和是一种预处理,用于降低查询的时间复杂度。 ##一维前缀和 有一个一维数组x和该数组的前缀和数组y,则x和y具有以下关系: #python代码示例 #关系&am…

上位机图像处理和嵌入式模块部署(树莓派4b和电源供给)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面,我们说过pc电脑和嵌入式设备,两者都可以实现相同的软件功能。但是和pc相比较,嵌入式设备不仅价格更便宜&a…

计算机视觉——OpenCV实现Lucas-Kanade 光流

1.光流 光流法是计算机视觉中用于估计图像序列中物体运动的关键技术。它类似于观察夜空中的彗星,通过其在天空中的运动轨迹来追踪它的路径。在图像处理中,光流帮助我们理解像素点如何在连续的帧之间移动。 1.1 稀疏光流法 稀疏光流法关注于图像中的关…

Web3空投入门:如何增加空投成功的几率

今天分享空投如何避免限制以提高效率,增加成功几率,首先我们来了解什么是空投加密,有哪些空投类型。 一、什么是空投加密? 加密货币空投是一种营销策略,包括向用户的钱包地址发送免费的硬币或代币。 加密货币项目使用…

Leetcode—155. 最小栈【中等】

2024每日刷题(130) Leetcode—155. 最小栈 实现代码 class MinStack { public:MinStack() {}void push(int val) {if(st.empty()) {st.emplace(val, val);} else {st.emplace(val, min(val, st.top().second));}}void pop() {if(st.empty()) {return;}…

【漏洞复现】用友U8-Cloud XChangeServlet XXE漏洞

0x01 产品简介 用友U8Cloud是用友推出的新一代云ERP,主要聚焦成长型、创新型企业,提供企业级云ERP整体解决方案。 0x02 漏洞概述 用友U8 cloud /service/XChangeServlet接口存在XXE漏洞,未授权的攻击者可通过此漏洞获取数据库敏感信息,从而盗取服务器数据,造成服务器信…

林更新博士之路星途璀璨再启航

林更新:博士之路,星途璀璨再启航在这个充满机遇与挑战的时代,有一位演员以其出色的演技和不懈的努力,赢得了无数观众的喜爱。他,就是林更新。今日,一条消息如重磅炸弹般在娱乐圈炸开,让无数粉丝…

UBOOT介绍

一、UBOOT简介 U-boot全称 Universal Boot Loader,是遵循GPL条款的开放源码项目,uboot 是一个裸机代码,可以看作是一个裸机综合例程,执行启动内核的功能。 补充:GPL条款(GNU General Public License&…

空间复杂度与链表刷题

"一切的一切都是你自己在感应." 本文索引 空间复杂度复杂度实例实例1实例2实例3 链表题目1. 返回倒数第K个节点2. 链表的回文结构3. 相交链表4. 随机链表的复制5. 环形链表 总结: 前言: 本文主要探究空间复杂度与链表题目讲解 更多文章点击主页: 酷酷学!!! 如果此文对…

AI时代:低代码与人工智能引领科技创造新时代

随着科技的飞速发展,我们步入了一个崭新的时代——AI时代。在这个时代,低代码和人工智能技术如日中天,成为引领科技创造的新引擎。本文将围绕这一主题,探讨低代码和人工智能如何在各个领域发挥巨大作用,推动科技创造迈…

Linux 之 tail 命令

一、基本语法 tail [option] [file] 其中 option 是可选参数,用于定制命令的行为,file 则是要处理的目标文件名。 二、常用参数 几个常用的 option 选项: -n:显示文件的最后 n 行,默认为 10 行。-f:实…

13. WINCC -- C脚本实现弹窗调用(根据鼠标更改弹窗位置)

C脚本实现弹窗调用(根据鼠标更改弹窗位置) #include "apdefap.h" void Click(char* lpszPictureName, char* lpszObjectName ) { #define H 300 //弹窗高度(可以不用只需要在弹窗属性中选择调整大小即可) #define W …

构建内网yum仓库

1、环境介绍 系统:龙蜥os 7.9 2、安装epel源 yum install epel-release -y3、安装nginx服务器并启动 yum install nginx httpd -y配置 server {listen 80;server_name repo.wtown.com;root /usr/share/nginx/html/repo;index index.html index.htm;location / {…

Sora惊艳亮相:AI技术掀起创作革命,影视产业迎来新风貌!

Sora平台近期发布了名为"Sora首次印象"的更新,为用户带来了令人瞩目的变化。该更新不仅展示了Sora平台的发展方向,还介绍了其在电影制作、广告宣传等领域的潜在应用。 同时,Sora的首席执行官Sam Altman与好莱坞影视工作室进行了会…