Vite+Vue3+TypeScript+Tailwind CSS의 간편한 환경 구축
각자의 공식 홈페이지를 보면 알겠지만 정리된 것을 적어두면 작은 프로젝트를 준비할 때 편리하다.
또한 본 보도는 yarn의 포장 관리를 전제로 한 것으로 npm 등을 사용하면 적절하게 교환해 주십시오.
본 글에서 다루는 내용
이 글에서 처리되지 않은 내용
환경 구축 후 프로젝트 목록 구성
my-app
├── node_modules
│ └── ...
├── README.md
├── index.html
├── package.json
├── postcss.config.js
├── public
│ └── favicon.ico
├── src
│ ├── App.vue
│ ├── assets
│ │ └── logo.png
│ ├── components
│ │ └── HelloWorld.vue
│ ├── env.d.ts
│ ├── index.css
│ └── main.ts
├── tailwind.config.js
├── tsconfig.json
├── vite.config.ts
└── yarn.lock
릴리즈
필자가 동작을 확인할 때의 각 도구 꾸러미의 판본을 기록하다.
name
version
yarn
1.22.10
npx
6.14.8
vue
3.2.20
@vitejs/plugin-vue
1.9.3
autoprefixer
10.3.7
postcss
8.3.9
tailwindcss
2.2.17
typescript
4.4.4
vite
2.6.7
vue-tsc
0.3.0
환경 구축 프로그램
Vite를 사용하여 Vue3+Type Script 프로젝트 베이스 만들기
먼저 Vite를 사용하여 Vue3+Type Script 프로젝트의 기초를 만들기 위해 다음 명령을 실행합니다.
$ yarn create vite my-app --template vue-ts
my-app
는 임의의 명칭이다.--template vue-ts
를 지정하여 Vue3+TypeScript 프로젝트의 기초를 만들 수 있습니다.다른 템플릿(React & Type Script 등)도 사용할 수 있으니 적시에 확인하십시오공식 GiitHub 창고.
이 명령을 통해
my-app/
디렉터리에 package.json
와 tsconfig.json
등을 포함하는 Vue & Type Script 프로젝트의 기초를 만들었습니다.yarn dev
명령을 실행하면 서버가 localhost:3000
에서 시작됩니다.브라우저를 열면 "Hello Vue 3+Type Script+Vite"등이 표시됩니다.
참고로 여기 표시된 페이지에 기재된 바와 같이 VScode를 사용할 때Volar의 확장 기능을 사용하는 것을 추천합니다.
Tailwind CSS 가져오기
my-app/
보호대로 이동하여 다음 명령을 통해 Tailwind CSS를 사용하는 데 필요한 패키지를 설치합니다.my-app/$ yarn add --dev tailwindcss@latest postcss@latest autoprefixer@latest
이후 Tailwind CSS를 사용하는 설정 파일(tailwind.config.js,postcss.config.js)을 생성하기 위해 다음 명령을 실행합니다.my-app/$ npx tailwindcss init -p
이후 각 설정 파일을 변경, 추가합니다.tailwind.config.js
의purge 옵션은 다음과 같이 변경되었습니다.또 적용되는 카테고리에 따라 다른 옵션(variants 옵션 등)을 변경해야 하는 경우도 있다.이때 여기. 등을 참조하십시오.my-app/tailwind.config.js
module.exports = {
- purge: [],
+ purge: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
darkMode: false, // or 'media' or 'class'
theme: {
extend: {},
},
variants: {
extend: {},
},
plugins: [],
}
my-app/src/index.css
아래 내용으로 제작.my-app/src/index.css
@tailwind base;
@tailwind components;
@tailwind utilities;
my-app/src/main.ts
에 상기 설정 파일을 쓰기 위해 다음과 같이 보충합니다.my-app/src/main.ts
import { createApp } from 'vue'
import App from './App.vue'
+ import './index.css'
createApp(App).mount('#app')
요약하면 Vite+Vue3+TypeScript+Tailwind CSS를 사용한 프로젝트의 간단한 환경 구축이 완료되었습니다.동작 확인
첨부된 내용이지만 동작을 확인하기 위해 다음 파일을 제작해 변경했다.
my-app/src/components/TopSection.vue
의 template
라벨 안은 Tailwind UI 페이지입니다.와 대체적으로 같지만 일부 텍스트를props로 전달하기 위해{{ msg }}
로 변경되었다.my-app/src/components/TopSection.vue
<script setup lang="ts">
defineProps<{ msg: string }>()
</script>
<template>
<div class="relative bg-white overflow-hidden">
<div class="max-w-7xl mx-auto">
<div class="relative z-10 pb-8 bg-white sm:pb-16 md:pb-20 lg:max-w-2xl lg:w-full lg:pb-28 xl:pb-32">
<svg class="hidden lg:block absolute right-0 inset-y-0 h-full w-48 text-white transform translate-x-1/2" fill="currentColor" viewBox="0 0 100 100" preserveAspectRatio="none" aria-hidden="true">
<polygon points="50,0 100,0 50,100 0,100" />
</svg>
<div>
<div class="relative pt-6 px-4 sm:px-6 lg:px-8">
<nav class="relative flex items-center justify-between sm:h-10 lg:justify-start" aria-label="Global">
<div class="flex items-center flex-grow flex-shrink-0 lg:flex-grow-0">
<div class="flex items-center justify-between w-full md:w-auto">
<a href="#">
<span class="sr-only">Workflow</span>
<img class="h-8 w-auto sm:h-10" src="https://tailwindui.com/img/logos/workflow-mark-indigo-600.svg">
</a>
<div class="-mr-2 flex items-center md:hidden">
<button type="button" class="bg-white rounded-md p-2 inline-flex items-center justify-center text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-500" aria-expanded="false">
<span class="sr-only">Open main menu</span>
<!-- Heroicon name: outline/menu -->
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
</svg>
</button>
</div>
</div>
</div>
<div class="hidden md:block md:ml-10 md:pr-4 md:space-x-8">
<a href="#" class="font-medium text-gray-500 hover:text-gray-900">Product</a>
<a href="#" class="font-medium text-gray-500 hover:text-gray-900">Features</a>
<a href="#" class="font-medium text-gray-500 hover:text-gray-900">Marketplace</a>
<a href="#" class="font-medium text-gray-500 hover:text-gray-900">Company</a>
<a href="#" class="font-medium text-indigo-600 hover:text-indigo-500">Log in</a>
</div>
</nav>
</div>
<div class="absolute z-10 top-0 inset-x-0 p-2 transition transform origin-top-right md:hidden">
<div class="rounded-lg shadow-md bg-white ring-1 ring-black ring-opacity-5 overflow-hidden">
<div class="px-5 pt-4 flex items-center justify-between">
<div>
<img class="h-8 w-auto" src="https://tailwindui.com/img/logos/workflow-mark-indigo-600.svg" alt="">
</div>
<div class="-mr-2">
<button type="button" class="bg-white rounded-md p-2 inline-flex items-center justify-center text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-500">
<span class="sr-only">Close main menu</span>
<svg class="h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
</svg>
</button>
</div>
</div>
<div class="px-2 pt-2 pb-3 space-y-1">
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium text-gray-700 hover:text-gray-900 hover:bg-gray-50">Product</a>
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium text-gray-700 hover:text-gray-900 hover:bg-gray-50">Features</a>
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium text-gray-700 hover:text-gray-900 hover:bg-gray-50">Marketplace</a>
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium text-gray-700 hover:text-gray-900 hover:bg-gray-50">Company</a>
</div>
<a href="#" class="block w-full px-5 py-3 text-center font-medium text-indigo-600 bg-gray-50 hover:bg-gray-100">
Log in
</a>
</div>
</div>
</div>
<main class="mt-10 mx-auto max-w-7xl px-4 sm:mt-12 sm:px-6 md:mt-16 lg:mt-20 lg:px-8 xl:mt-28">
<div class="sm:text-center lg:text-left">
<h1 class="text-4xl tracking-tight font-extrabold text-gray-900 sm:text-5xl md:text-6xl">
<span class="block xl:inline">{{ msg }}</span>
<span class="block text-indigo-600 xl:inline">online business</span>
</h1>
<p class="mt-3 text-base text-gray-500 sm:mt-5 sm:text-lg sm:max-w-xl sm:mx-auto md:mt-5 md:text-xl lg:mx-0">
Anim aute id magna aliqua ad ad non deserunt sunt. Qui irure qui lorem cupidatat commodo. Elit sunt amet fugiat veniam occaecat fugiat aliqua.
</p>
<div class="mt-5 sm:mt-8 sm:flex sm:justify-center lg:justify-start">
<div class="rounded-md shadow">
<a href="#" class="w-full flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 md:py-4 md:text-lg md:px-10">
Get started
</a>
</div>
<div class="mt-3 sm:mt-0 sm:ml-3">
<a href="#" class="w-full flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-indigo-700 bg-indigo-100 hover:bg-indigo-200 md:py-4 md:text-lg md:px-10">
Live demo
</a>
</div>
</div>
</div>
</main>
</div>
</div>
<div class="lg:absolute lg:inset-y-0 lg:right-0 lg:w-1/2">
<img class="h-56 w-full object-cover sm:h-72 md:h-96 lg:w-full lg:h-full" src="https://images.unsplash.com/photo-1551434678-e076c223a692?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=2850&q=80" alt="">
</div>
</div>
</template>
my-app/src/App.vue<script setup lang="ts">
import TopSection from './components/TopSection.vue'
</script>
<template>
<TopSection msg="Custom Message!!!" />
</template>
상기 내용을 반영한 후localhost:3000
다음에 보듯이 동작에 문제가 없다.총결산
Vite+Vue3+Type Script+Tailwind CSS의 간단한 환경을 구축할 때 다음 명령을 실행하고 다음 파일을 편집하고 추가합니다.
yarn create vite my-app --template vue-ts
cd my-app
yarn add --dev tailwindcss@latest postcss@latest autoprefixer@latest
npx tailwindcss init -p
my-app/tailwind.config.js
my-app/src/index.css
my-app/src/main.ts
참고 자료
Reference
이 문제에 관하여(Vite+Vue3+TypeScript+Tailwind CSS의 간편한 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/showy1/articles/c5d1b5d33552be텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)