1-1. npx nuxi init [워킹스페이스 폴더명]
1-2. nuxt.config.ts -> nuxt.config.js로 확장자 변경
1-3. npm uninstall --save-dev @nuxt/typescript-build
2-1. 터미널 명령어 입력하여 vuetify 3.x 설치
npm install sass vuetify@next
npm install ~~~~~~~~~~~~~~~~
3-1. plugins/vuetify.ts
import { createVuetify } from "vuetify";
import * as components from "vuetify/components";
import * as directives from "vuetify/directives";
export default defineNuxtPlugin((NuxtApp) => {
const vuetify = createVuetify({
components,
directives,
});
NuxtApp.vueApp.use(vuetify);
});
3-2. nuxt.config.ts
export default defineNuxtConfig({
build: {
transpile: ['vuetify'],
},
vite: {
define: {
'process.env.DEBUG': false,
},
css: {
preprocessorOptions: {
scss: {
additionalData: '@use "@/assets/style/common.scss" as *;'
}
}
}
},
})
3-3. tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "es2015"
}
}
3-4. .prettierrc
{
"semi": false,
"singleQuote": true,
"tabWidth": 4,
"trailingComma": "es5"
}
3-5. package.json (설치 되었는지 확인용)
{
"name": "nuxt-app",
"private": true,
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare",
"lint": "eslint --ext .js,.vue --ignore-path .gitignore ."
},
"devDependencies": {
"@nuxtjs/eslint-config": "^12.0.0",
"eslint": "^8.37.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-prettier": "^4.2.1",
"nuxt": "^3.3.2",
"prettier": "^2.8.7",
"sass": "^1.60.0",
"vuetify": "^3.1.4"
}
}
4-1. /components/
/components/Button.vue 의 경우 임폴트 과정 없이
바로 <Button />만 써도 적용된다.
5-1. /layouts/
5-1-1. 커스텀 레이아웃
<template>
<div class="wrap">
<Header />
<slot />
<Footer />
</div>
</template>
5-1-2.
<NuxtLayout name="custom">
<!-- 섹션 -->
커스텀 레이아웃 안에 채워넣을 섹션영역
<!--// 섹션 -->
</NuxtLayout>
5-1-3. 동적으로도 레이아웃을 생성할 수 있다.
참고:
https://codybontecou.com/how-to-use-vuetify-with-nuxt-3.html