<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vite + Vue</title> </head> <body> <div id="app"></div> <!-- 引入 Vue 3 的完整版本 --> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> </body> </html>
在 vite.config.js 中配置 build.rollupOptions.external,告知 Vite 不要将 Vue 打包到构建结果中,而是直接使用全局变量 Vue。
修改 vite.config.js:
import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ plugins: [vue()], build: { rollupOptions: { external: ['vue'], // 告诉 Rollup 不要打包 Vue output: { globals: { vue: 'Vue', // Vue 的全局变量名(与 CDN 引入的对应) }, }, }, }, });
由于 Vue 是通过 <script> 标签引入的全局变量,直接使用即可。例如:
main.js
import { createApp } from 'vue'; // 使用全局的 Vue 对象 import App from './App.vue'; const app = createApp(App); app.mount('#app');
为了让 TypeScript 或 IDE 提供正确的类型提示,你可以安装 Vue 的类型定义包:
npm install -D @types/vue