马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、什么是Vite?
Vite(法语意为"快速")是由Vue作者尤雨溪开辟的新型前端构建工具。它基于原生ES模块(ESM)实现,具有以下焦点优势:
- 极速启动:冷启动时间比Webpack快10-100倍
- 闪电般的热更新:HMR(热模块更换)保持应用状态
- 开箱即用的支持:TypeScript、JSX、CSS预处理惩罚等
- 机动的扩展:通过插件支持Rollup生态系统
二、环境预备
确保已安装:
- Node.js 14.18+ / 16+
- npm 7+ 或 yarn
三、创建第一个项目
1. 初始化项目
- npm create vite@latest my-vite-app
复制代码 选择框架模板(这里以React+TS为例):
- ✔ Select a framework: › React
- ✔ Select a variant: › TypeScript
复制代码 2. 项目结构
- my-vite-app/
- ├── node_modules/
- ├── public/
- │ └── vite.svg
- ├── src/
- │ ├── assets/
- │ ├── App.css
- │ ├── App.tsx
- │ ├── index.css
- │ ├── main.tsx
- │ └── vite-env.d.ts
- ├── index.html
- ├── package.json
- ├── tsconfig.json
- └── vite.config.ts
复制代码 3. 启动开辟服务器
- cd my-vite-app
- npm install
- npm run dev
复制代码 访问 http://localhost:5173
四、焦点功能实践
1. 模块热更换(HMR)
修改 src/App.tsx:
- function App() {
- return (
- <div className="App">
- <h1>Hello Vite!</h1>
- <p>Edit and save to see HMR in action</p>
- </div>
- )
- }
复制代码 保存后浏览器立即更新,无需刷新页面
2. CSS处理惩罚
创建 src/Button.module.css:
- .primary {
- background: #646cff;
- color: white;
- padding: 12px 24px;
- border-radius: 4px;
- }
复制代码 在组件中使用:
- import styles from './Button.module.css'
- function Button() {
- return <button className={styles.primary}>Click Me</button>
- }
复制代码 3. 静态资源处理惩罚
- // 直接引入图片
- import logo from './assets/react.svg'
- function Logo() {
- return <img src={logo} alt="React logo" />
- }
复制代码 五、Vite配置详解
修改 vite.config.ts:
- import { defineConfig } from 'vite'
- import react from '@vitejs/plugin-react'
- export default defineConfig({
- plugins: [react()],
- server: {
- port: 3000,
- open: true
- },
- build: {
- outDir: 'dist',
- assetsDir: 'static'
- }
- })
复制代码 六、插件系统
1. 常用插件示例
安装官方React插件:
- npm install @vitejs/plugin-react -D
复制代码 配置插件:
- import { defineConfig } from 'vite'
- import react from '@vitejs/plugin-react'
- export default defineConfig({
- plugins: [
- react({
- babel: {
- plugins: ['babel-plugin-styled-components']
- }
- })
- ]
- })
复制代码 2. 社区插件示例(以SVG转换为例)
- npm install vite-plugin-svgr -D
复制代码 配置:
- import svgr from 'vite-plugin-svgr'
- export default defineConfig({
- plugins: [
- svgr({
- svgrOptions: {
- icon: true
- }
- })
- ]
- })
复制代码 使用SVG组件:
- import { ReactComponent as Logo } from './logo.svg'
- function App() {
- return <Logo />
- }
复制代码 七、生产构建
生成优化后的静态文件:
- dist/
- ├── static/
- │ ├── js/
- │ ├── css/
- │ └── assets/
- └── index.html
复制代码 八、环境变量
1. 创建环境文件
- .env # 所有情况
- .env.local # 本地覆盖,git忽略
- .env.development # 开发环境
- .env.production # 生产环境
复制代码 2. 界说变量(前缀必须为VITE_)
- VITE_API_URL=https://api.example.com
复制代码 3. 使用变量
- console.log(import.meta.env.VITE_API_URL)
复制代码 九、与Webpack的主要差异
特性ViteWebpack启动时间毫秒级随着项目增长变慢构建方式ESM原生模块Bundle打包HMR速度保持状态快速更新必要重建模块配置复杂度简单相对复杂生态快速成长成熟 十、完整示例代码
查看GitHub仓库:
- git clone https://github.com/vitejs/vite-template-react.git
复制代码 十一、最佳实践
- 按需加载:使用动态import实现代码分割
- 缓存策略:配置公道的hash文件名
- 性能优化:使用 vite-plugin-compression 举行Gzip压缩
- 类型安全:充分使用TypeScript类型查抄
- SSR支持:结合vite-ssr插件实现服务端渲染
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |