npm create vite@latest
npm i
// 命令会生成package.json默认文件
npm init -y
//安装开发环境下vite的依赖
npm i vite -D
//安装vue的依赖
npm i vue
//安装开发环境下解析vite的插件@vitejs/plugin-vue
npm i @vitejs/plugin-vue -D
import {defineConfig} from "vite"
import Vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins:[Vue()]
})
<template>
hello
</template>
import {createApp} from "vue"
import App from './App.vue'
const app = createApp(App);
app.mount('#app')
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<div id="app">div>
<script type="module" src="./src/main.js">script>
body>
html>
使用环境变量,是基于不同环境实现不同逻辑的,vite可以从更目录寻找.env.[mode] 文件加载额外的环境变量,这个的mode指development,production,text等
# 本地环境
VITE_ENV = development
#标题
VITE_APP_TITLE = 西堂ERP
#接口地址
VITE_APP_API_BASEURL= http://127.0.0.1:8000/
#本地端口
VITE_APP_PORT=9000
# 是否开启代理
VITE_APP_PROXY= true
import {defineConfig,loadEnv} from "vite"
import Vue from '@vitejs/plugin-vue'
export default defineConfig(({command,mode})=>{
const env = loadEnv(mode,process.cwd(),'')
return {
plugins:[
Vue(),
],
server:{
host:'0.0.0.0',
port:env.VITE_APP_PORT,
proxy:{
"api":{
target:env.VITE_APP_API_BASEURL,
changeOrigin:true,
rewrite:(path)=>path.replace(/^\/api/,"")
}
}
}
}
})
npm i vue-router -D
<template>
<router-view>router-view>
template>
import {createApp} from "vue"
import App from './App.vue'
import router from "./router";
const app = createApp(App);
app.use(router)
app.mount('#app')
import {createRouter,createWebHashHistory} from "vue-router"
const router = createRouter({
routes:[
{
component:()=>import('../pages/print_setting.vue')
},
{
path:'/print_setting',
component:()=>import('../pages/print_setting.vue')
}
],
history:createWebHashHistory()
})
export default router
每次新建页面都需要配置路由,繁琐且管理不便,我们映入自动路由插件vite-plugin-pages
npm i -D vite-plugin-pages
import {defineConfig} from "vite"
import Vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import AutoImport from 'unplugin-auto-import/vite'
import Pages from 'vite-plugin-pages'
export default defineConfig({
plugins:[
Vue(),
Pages({
dirs:'pages',
extensions: ['vue']
}),
AutoImport({import:['vue','vue-rouetr']}),
Components({
resolvers:[ElementPlusResolver()]
})
]
})
import {createRouter,createWebHashHistory} from "vue-router"
import routes from '~pages'
const router = createRouter({
routes,
history:createWebHashHistory()
})
export default router
在页面中使用组件每次都需要import组件,unplugin-vue-components可以使页面不需要手动import组件,自动按需引入
npm i unplugin-vue-components -D
import {defineconfig} from "vite"
import Vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components'
export default defineconfig({
plugins:[Vue(),Components()]
})
组件的映入可以自动,当然vue等的引入也可以自动
npm i -D unplugin-auto-import
import {defineConfig} from "vite"
import Vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import AutoImport from 'unplugin-auto-import/vite'
export default defineConfig({
plugins:[Vue(),AutoImport({import:['vue','vue-rouetr']}),Components({
resolvers:[ElementPlusResolver()]
})]
})
npm i element-plus -D
import {defineConfig} from "vite"
import Vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
plugins:[Vue(),Components({
resolvers:[ElementPlusResolver()]
})]
})