[TOC]
# Vite
| 概念 | 作用 | 用法 |
| --------- | ------------------------ |-----------------|
|打包工具 | 显著提高开发环境启动速度 |`npm init vite@latest`|
|模块热重载| 修改源代码后,浏览器会热重载更新|支持HMR|
|按需编译 |只编译用到的代码 |通过 rollup.js 来实现 |
|优化的开发服务器|更快启动、更好体验 |Vite 启动服务器,无需中间 bundle |
|条理清晰的API |易于配置和扩展 |rollup.config.js 替代 |
|完全类型化 |增强开发体验 |TypeScript 支持 |
## 构建更加复杂的项目
### 1. 多页面应用支持
:在 vite.config.js 中配置多个入口,可以构建多页面应用。
```
js
export default {
build: {
rollupOptions: {
input: {
main: resolve(__dirname, 'index.html'),
about: resolve(__dirname, 'about.html')
}
}
}
}
```
### 2. Library 模式
:可以将 Vite 用来构建 library,通过 externals 配置,避免打包第三方依赖。
```
js
export default {
build: {
lib: {
entry: resolve(__dirname, 'src/main.js'),
name: 'MyLib',
fileName: (format) => `my-lib.${format}.js`
},
rollupOptions: {
// 确保外部化处理那些你不想打包进库的依赖
external: ['vue']
}
}
}
```
### 3. 插件 API
:Vite 提供了插件 API,可以编写自定义插件。插件可以在开发和构建过程中的不同阶段注入自定义逻辑。
```
js
export default function myPlugin() {
const symbol = Symbol('some symbol')
return {
name: 'my-plugin',
config() { /* ... */ },
configResolved(config) { /* ... */ },
handleHotUpdate() { /* ... */ },
transform(code, id) { /* ... */ },
generateBundle() { /* ... */ },
writeBundle() { /* ... */ }
}
}
```
### 4. 环境变量和模式
:可以基于 mode 选项,设置不同的环境变量,在代码中使用 import.meta.env 来访问。
```
js
// vite.config.js
export default {
mode: 'development',
define: {
'process.env': {
NODE_ENV: '"development"'
}
}
}
```
```
js
// src/main.js
console.log(import.meta.env.NODE_ENV)
// Prints "development"
```
### 5. 路径别名
:可以在 vite.config.js 中设置路径别名,简化 import 语句。
```
js
export default {
resolve: {
alias: {
'@components': '/src/components'
}
}
}
```
```
js
import MyComponent from '@components/MyComponent.vue'
```
掌握这些高级特性,可以让我们构建更加复杂和规模化的 Vue 项目。Vite 是 Vue 生态中的前沿工具,值得我们深入学习和实践。
- 系统设计
- 需求分析
- 概要设计
- 详细设计
- 逻辑模型设计
- 物理模型设计
- 产品设计
- 数据驱动产品设计
- 首页
- 逻辑理解
- 微服务架构的关系数据库优化
- Java基础架构
- 编程范式
- 面向对象编程【模拟现实】
- 泛型编程【参数化】
- 函数式编程
- 响应式编程【异步流】
- 并发编程【多线程】
- 面向切面编程【代码复用解耦】
- 声明式编程【注解和配置】
- 函数响应式编程
- 语法基础
- 包、接口、类、对象和切面案例代码
- Springboot按以下步骤面向切面设计程序
- 关键词
- 内部类、匿名类
- 数组、字符串、I/O
- 常用API
- 并发包
- XML
- Maven 包管理
- Pom.xml
- 技术框架
- SpringBoot
- 项目文件目录
- Vue
- Vue项目文件目录
- 远程组件
- 敏捷开发前端应用
- Pinia Store
- Vite
- Composition API
- uniapp
- 本地方法JNI
- 脚本机制
- 编译器API
- 注释
- 源码级注释
- Javadoc
- 安全
- Swing和图形化编程
- 国际化
- 精实或精益
- 精实软件数据库设计
- 精实的原理与方法
- 项目
- 零售软件
- 扩展
- 1001_docker 示例
- 1002_Docker 常用命令
- 1003_微服务
- 1004_微服务数据模型范式
- 1005_数据模型
- 1006_springCloud
- AI 流程图生成
- Wordpress_6
- Woocommerce_7
- WooCommerce常用的API和帮助函数
- WooCommerce的钩子和过滤器
- REST API
- 数据库API
- 模板系统
- 数据模型
- 1.Woo主题开发流程
- Filter
- Hook
- 可视编辑区域的函数工具
- 渲染字段函数
- 类库和框架
- TDD 通过测试来驱动开发
- 编程范式对WordPress开发
- WordPress和WooCommerce的核心代码类库组成
- 数据库修改
- 1.WP主题开发流程与时间规划
- moho
- Note 1
- 基础命令