5
5
*/
6
6
import octokit from '#plugins/octokit'
7
7
8
+ const VUETIFY_DEPENDENCIES = 'vue vuetify @mdi/font'
9
+ const VITE_DEPENDENCIES = 'vite @vitejs/plugin-vue vite-plugin-vuetify unplugin-fonts'
10
+
8
11
export const SSR_NOTE = `
9
- > **SSR Configuration**: When using Server-Side Rendering, you must pass the \`ssr: true\` option to all \`createVuetify()\` instances in your code.
10
- > For example: \`createVuetify({ ssr: true })\` or \`createVuetify({ ssr: true, components, directives })\`
12
+ > **SSR Configuration**: When using Server-Side Rendering use *ssr: true*: \`createVuetify({ ssr: true })\`
11
13
`
12
14
13
15
export const FRESH_INSTALLATION_PLATFORMS = {
@@ -43,17 +45,17 @@ export const INSTALLATION_PLATFORMS = {
43
45
markdown : `
44
46
# Dependencies
45
47
\`\`\`bash
46
- [npm|pnpm|yarn|bun] install vue vite @vitejs/plugin-vue vuetify vite-plugin-vuetify @mdi/font
48
+ [npm|pnpm|yarn|bun] install ${ VUETIFY_DEPENDENCIES } ${ VITE_DEPENDENCIES }
47
49
\`\`\`
48
50
# Files
49
- \`\`\`ts [plugins/vuetify.ts]
51
+ \`\`\`ts [src/ plugins/vuetify.ts]
50
52
import '@mdi/font/css/materialdesignicons.css'
51
53
import 'vuetify/styles'
52
54
import { createVuetify } from 'vuetify'
53
55
54
56
export default createVuetify()
55
57
\`\`\`
56
- \`\`\`ts [app| main.ts]
58
+ \`\`\`ts [src/ main.ts]
57
59
import { createApp } from 'vue'
58
60
import App from './App.vue'
59
61
import vuetify from './plugins/vuetify'
@@ -63,16 +65,37 @@ export const INSTALLATION_PLATFORMS = {
63
65
\`\`\`
64
66
\`\`\`ts [vite.config.ts]
65
67
import { defineConfig } from 'vite'
66
- import vue from '@vitejs/plugin-vue'
67
- import vuetify from 'vite-plugin-vuetify'
68
+ import Vue from '@vitejs/plugin-vue'
69
+ import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'
70
+ import { fileURLToPath, URL } from 'node:url'
68
71
69
72
export default defineConfig({
70
73
plugins: [
71
- vue(),
72
- vuetify({
73
- autoImport: true,
74
- }),
74
+ Vue({ template: { transformAssetUrls } }),
75
+ Vuetify({ autoImport: true }),
76
+ Fonts({
77
+ google: {
78
+ families: [{
79
+ name: 'Roboto',
80
+ styles: 'wght@100;300;400;500;700;900',
81
+ }],
82
+ },
83
+ })
75
84
],
85
+ resolve: {
86
+ alias: {
87
+ '@': fileURLToPath(new URL('src', import.meta.url)),
88
+ },
89
+ extensions: [
90
+ '.js',
91
+ '.json',
92
+ '.jsx',
93
+ '.mjs',
94
+ '.ts',
95
+ '.tsx',
96
+ '.vue',
97
+ ],
98
+ },
76
99
})
77
100
\`\`\`
78
101
` ,
@@ -83,7 +106,7 @@ export const INSTALLATION_PLATFORMS = {
83
106
markdown : `
84
107
# Dependencies
85
108
\`\`\`bash
86
- [npm|pnpm|yarn|bun] vuetify vite-plugin-vuetify @mdi/font
109
+ [npm|pnpm|yarn|bun] install ${ VUETIFY_DEPENDENCIES } ${ VITE_DEPENDENCIES }
87
110
\`\`\`
88
111
# Files
89
112
\`\`\`ts [nuxt.config.ts]
@@ -120,7 +143,7 @@ export const INSTALLATION_PLATFORMS = {
120
143
app.vueApp.use(vuetify)
121
144
})
122
145
\`\`\`
123
- \`\`\`vue [app .vue]
146
+ \`\`\`vue [App .vue]
124
147
<template>
125
148
<NuxtLayout>
126
149
<v-app>
@@ -156,45 +179,67 @@ export const INSTALLATION_PLATFORMS = {
156
179
'laravel' : {
157
180
name : 'Laravel Vite' ,
158
181
description : 'Installation guide for Laravel Vite projects.' ,
159
- markdown : `
160
- # Laravel Vite Installation
161
- The following dependencies are required to use Vuetify with Laravel Vite:
162
- TODO
163
- ` ,
164
- } ,
165
- 'laravel-mix' : {
166
- name : 'Laravel Mix' ,
167
- description : 'Installation guide for Laravel Mix projects.' ,
168
182
markdown : `
169
183
# Dependencies
170
184
\`\`\`bash
171
- [npm|pnpm|yarn|bun] vuetify @mdi/font
185
+ [npm|pnpm|yarn|bun] install ${ VUETIFY_DEPENDENCIES } ${ VITE_DEPENDENCIES }
172
186
\`\`\`
173
187
# Files
174
- \`\`\`ts [plugins/vuetify.ts]
188
+ \`\`\`ts [resources/js/ plugins/vuetify.ts]
175
189
import '@mdi/font/css/materialdesignicons.css'
176
190
import 'vuetify/styles'
177
191
import { createVuetify } from 'vuetify'
178
- import * as components from 'vuetify/components'
179
- import * as directives from 'vuetify/directives'
180
192
181
- export default createVuetify({
182
- components,
183
- directives,
184
- })
193
+ export default createVuetify()
185
194
\`\`\`
186
- \`\`\`ts [app.ts]
195
+ \`\`\`ts [resources/js/ app.ts]
187
196
import { createApp } from 'vue'
188
197
import App from './App.vue'
189
198
import vuetify from './plugins/vuetify'
190
199
191
200
const app = createApp(App)
192
201
app.use(vuetify).mount('#app')
193
202
\`\`\`
194
- \`\`\`webpack.mix.[js|ts]
195
- const mix = require('laravel-mix')
203
+ \`\`\`ts [vite.config.ts]
204
+ import { defineConfig } from 'vite'
205
+ import laravel from 'laravel-vite-plugin'
206
+ import vue from '@vitejs/plugin-vue'
207
+ import vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'
208
+ import fonts from 'unplugin-fonts/vite'
209
+ import { fileURLToPath, URL } from 'node:url'
196
210
197
- mix.copy('node_modules/@mdi/font/fonts/', 'dist/fonts/')
211
+ export default defineConfig({
212
+ plugins: [
213
+ laravel({
214
+ input: ['resources/js/app.ts', 'resources/css/app.css'],
215
+ refresh: true,
216
+ }),
217
+ vue({ template: { transformAssetUrls } }),
218
+ vuetify({ autoImport: true }),
219
+ fonts({
220
+ google: {
221
+ families: [{
222
+ name: 'Roboto',
223
+ styles: 'wght@100;300;400;500;700;900',
224
+ }],
225
+ },
226
+ }),
227
+ ],
228
+ resolve: {
229
+ alias: {
230
+ '@': fileURLToPath(new URL('src', import.meta.url)),
231
+ },
232
+ extensions: [
233
+ '.js',
234
+ '.json',
235
+ '.jsx',
236
+ '.mjs',
237
+ '.ts',
238
+ '.tsx',
239
+ '.vue',
240
+ ],
241
+ },
242
+ })
198
243
\`\`\`
199
244
` ,
200
245
} ,
@@ -236,7 +281,7 @@ export const INSTALLATION_PLATFORMS = {
236
281
<script type="importmap">
237
282
{
238
283
"imports": {
239
- "vue": "https://cdn.jsdelivr.net/npm/vue@latest /dist/vue.esm-browser.js",
284
+ "vue": "https://cdn.jsdelivr.net/npm/vue@3.0.0 /dist/vue.esm-browser.js",
240
285
"vuetify": "https://cdn.jsdelivr.net/npm/[email protected] /dist/vuetify.esm.js"
241
286
}
242
287
}
@@ -247,6 +292,7 @@ export const INSTALLATION_PLATFORMS = {
247
292
248
293
const vuetify = createVuetify()
249
294
const app = createApp()
295
+
250
296
app.use(vuetify).mount('#app')
251
297
</script>
252
298
\`\`\`
@@ -260,7 +306,6 @@ export const INSTALLATION_PLATFORMS = {
260
306
The following dependencies are required to use Vuetify with VitePress:
261
307
- vue, vitepress, vuetify, @mdi/font
262
308
# Files
263
- -
264
309
\`\`\`ts [.vitepress/theme/index.ts]
265
310
import DefaultTheme from 'vitepress/theme'
266
311
import '@mdi/font/css/materialdesignicons.css'
0 commit comments