├── layouts ├── default.vue └── complicated.vue ├── tsconfig.json ├── .gitignore ├── app.vue ├── assets ├── styles │ ├── quasar.sass │ └── quasar-variables.sass └── logo.svg ├── .vscode └── settings.json ├── plugins ├── quasar.ts └── fake-dom.server.ts ├── pages ├── index.vue └── complicated.vue ├── nuxt.config.ts ├── README.md ├── package.json └── components ├── HelloWorld.vue └── LeftDrawer.vue /layouts/default.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.nuxt/tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | .nuxt 4 | nuxt.d.ts 5 | .output 6 | .env -------------------------------------------------------------------------------- /app.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/styles/quasar.sass: -------------------------------------------------------------------------------- 1 | @import './quasar-variables.sass' 2 | @import 'quasar/src/css/index.sass' -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "yaml.schemas": { 3 | "kubernetes": "*.kube.yaml", 4 | "https://json.schemastore.org/github-workflow.json": "file:///Users/alex/Desktop/nuxt-app/.github/workflows/deploy.yml" 5 | } 6 | } -------------------------------------------------------------------------------- /plugins/quasar.ts: -------------------------------------------------------------------------------- 1 | import * as components from 'quasar' 2 | 3 | export default defineNuxtPlugin((nuxtApp) => { 4 | 5 | nuxtApp.vueApp.use(components.Quasar, { 6 | plugins: {}, 7 | components, 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /pages/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 11 | -------------------------------------------------------------------------------- /assets/styles/quasar-variables.sass: -------------------------------------------------------------------------------- 1 | $primary : #1976D2 2 | $secondary : #26A69A 3 | $accent : #9C27B0 4 | 5 | $dark : #1D1D1D 6 | 7 | $positive : #21BA45 8 | $negative : #C10015 9 | $info : #31CCEC 10 | $warning : #F2C037 -------------------------------------------------------------------------------- /pages/complicated.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | -------------------------------------------------------------------------------- /nuxt.config.ts: -------------------------------------------------------------------------------- 1 | import { quasar } from "@quasar/vite-plugin"; 2 | 3 | export default defineNuxtConfig({ 4 | build: { 5 | transpile: ["quasar"], 6 | }, 7 | css: [ 8 | "@quasar/extras/roboto-font/roboto-font.css", 9 | "@quasar/extras/material-icons/material-icons.css", 10 | "@quasar/extras/fontawesome-v6/fontawesome-v6.css", 11 | "~/assets/styles/quasar.sass", 12 | ], 13 | vite: { 14 | define: { 15 | // "process.env.DEBUG": false, 16 | }, 17 | plugins: [ 18 | quasar({ 19 | sassVariables: "assets/styles/quasar-variables.sass", 20 | }), 21 | ], 22 | }, 23 | }); 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Nuxt 3 + Quasar 2.10 - Starter Template 2 | 3 | We recommend to look at the [documentation](https://v3.nuxtjs.org). 4 | 5 | **Demo:** https://quasar-nuxt3-ssr.vercel.app/ 6 | 7 | ## Prerequisits 8 | 9 | - NodeJS 16.x 10 | 11 | ## Setup 12 | 13 | Make sure to install the dependencies 14 | 15 | ```bash 16 | yarn install 17 | ``` 18 | 19 | ## Development 20 | 21 | Start the development server on http://localhost:3000 22 | 23 | ```bash 24 | yarn dev 25 | ``` 26 | 27 | ## Production 28 | 29 | Build the application for production: 30 | 31 | ```bash 32 | yarn build 33 | ``` 34 | 35 | Checkout the [deployment documentation](https://v3.nuxtjs.org/docs/deployment). -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "build": "nuxt build", 5 | "dev": "nuxt dev", 6 | "start": "node .output/server/index.mjs", 7 | "generate": "nuxt generate", 8 | "preview": "nuxt preview", 9 | "postinstall": "nuxt prepare", 10 | "test": "echo 'test'", 11 | "lint": "echo 'lint'" 12 | }, 13 | "engines": { 14 | "node": "16" 15 | }, 16 | "dependencies": { 17 | "@quasar/extras": "^1.15.5", 18 | "@vueuse/core": "^9.5.0", 19 | "jsdom": "^20.0.2", 20 | "quasar": "^2.10.2" 21 | }, 22 | "devDependencies": { 23 | "@quasar/vite-plugin": "^1.2.3", 24 | "@types/jsdom": "^20.0.1", 25 | "nuxt": "3.0.0-rc.14", 26 | "sass": "1.32.12" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /plugins/fake-dom.server.ts: -------------------------------------------------------------------------------- 1 | import { JSDOM } from "jsdom"; 2 | 3 | const dom = new JSDOM( 4 | "

FAKE DOM

", 5 | { 6 | url: "https://example.org/", 7 | referrer: "https://example.com/", 8 | contentType: "text/html", 9 | includeNodeLocations: true, 10 | storageQuota: 10000000, 11 | } 12 | ); 13 | 14 | const { XMLHttpRequest } = dom.window; 15 | global.XMLHttpRequest = XMLHttpRequest; 16 | // @ts-ignore 17 | global.window = dom.window; 18 | global.navigator = dom.window.navigator; 19 | global.document = dom.window.document; 20 | // @ts-ignore 21 | global.FileList = dom.window.FileList; 22 | global.File = dom.window.File; 23 | global.getComputedStyle = dom.window.getComputedStyle; 24 | 25 | export default defineNuxtPlugin((_nuxtApp): void => {}); 26 | -------------------------------------------------------------------------------- /components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 34 | -------------------------------------------------------------------------------- /layouts/complicated.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 56 | -------------------------------------------------------------------------------- /components/LeftDrawer.vue: -------------------------------------------------------------------------------- 1 | 69 | 70 | 87 | -------------------------------------------------------------------------------- /assets/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 15 | 16 | --------------------------------------------------------------------------------