Vue3 + TypeScript + Tailwindの環境構築
はじめに
VSCodeで快適なVue3コーディングをおこなうために、環境構築方法について調べてみました。
ついでにtailwindの導入についても紹介しています。
日本語の記事では情報がなかなか見当たらないものもあるため、Vue3ユーザーは必見です!
Vue3のプロジェクト作成
今回はVue3のプロジェクトをViteを使って作成していきます。
ViteはVueの作者が開発しているビルドツールで、Vue CLIに比べると動作が圧倒的に軽快です。
npm init vite@latest
上記コマンドを入力すると、プロジェクト名などの入力をするように促されます。
- Project name: ←プロジェクト名を入力
- Select a framework: ← vueを選択
- Select a variant: ← vue-tsを選択
ちなみに、プロジェクトの作成はテンプレートを使うことでも可能です。
npm init vite@latest my-vue-app --template vue-ts
VSCodeの設定
Volarのインストール
Vueの拡張機能として有名なものにVetur
がありますが、Vue3ではVolar
という拡張機能を使います。
Volar
は下記のリポジトリで開発が進んでいます。
Vetur
をインストール済みの場合はVolarとの競合を避けるために、Vue3のプロジェクトではDisable(Workspace)にしておきます。
Volar
のインストールは下記のマーケットプレイスへのリンクからおこなえます。
Take Over Modeを有効化
Volar
インストール後、公式が推奨しているTake Over Mode
を有効にします。
Take Over Modeを有効にすると、*.vue
ファイルの型チェックを強化してくれます。
Take Over Modeの詳細は下のDiscussionsで確認できます。
有効にする手順は簡単で、拡張機能のタブで@builtin typescript
と入力し、TypeScript and JavaScript Language Features
をDisable(Workspace)するだけです。
VSCodeを再起動後、適当なvue
ファイルを開けばこのようなポップアップが表示され、Take Over Modeが有効になります。
SFCファイルの型チェックライブラリのインストール
Valor
によって型の違反はエディタ上に赤線表示がされるようになりますが、コンパイル自体は通ってしまいます。
そのため型チェックを別で走らせるvue-tsc
というライブラリをインストールすることをおすすめします。
npm install -D vue-tsc
インストール後、package.jsonに型チェック用のスクリプトを記述しておきます。
"scripts": {
"dev": "vite",
+ "tsc": "vue-tsc --noEmit",
+ "build": "npm run tsc && vite build",
"serve": "vite preview"
}
Tailwindのインストール
CSSのフレームワークである、Tailwindをインストールします。
Tailwindのインストールは環境(Vue3+ViteやNuxt, Reactなど)によって異なるため、自身の環境に合った手順でおこなうようにしてください。
ここではVue3 + Vite環境での説明をおこないます。
まず、npm
コマンドでTailwindのインストールをおこないます。
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
インストールが完了後、tailwind.config.js
とpostcss.config.js
の生成をおこなうコマンドを実行します。
npx tailwindcss init -p
次に、Tailwindのツリーシェイクをおこなうための設定を追記します。
この設定によって、使っていないTailwindのスタイルがプロダクションコードから自動的に除外されます。
// 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: [],
}
最後に、./src/index.css
を作成し、./src/main.ts
で読み込めば完了です。
@tailwind hoge;
の詳細については割愛しますが、例えば@tailwind utilities;
には.flex
や.opacity-0
などが定義されています。
/* ./src/index.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
import './index.css'
を追記。
import { createApp } from 'vue'
import App from './App.vue'
+ import './index.css'
createApp(App).mount('#app')
環境構築の手順は以上となります。
お疲れ様でした。!
Discussion