<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vue3 | 株式会社ファーストペンギン</title>
	<atom:link href="https://www.firstpenguin.co.jp/tag/vue3/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.firstpenguin.co.jp</link>
	<description></description>
	<lastBuildDate>Thu, 22 Oct 2026 09:54:59 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://www.firstpenguin.co.jp/wp-content/uploads/2019/09/cropped-icon-32x32.png</url>
	<title>Vue3 | 株式会社ファーストペンギン</title>
	<link>https://www.firstpenguin.co.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://www.firstpenguin.co.jp/tag/vue3/feed/"/>
	<item>
		<title>Vue3+Vuetify3+TypeScript+Viteの開発環境を構築する</title>
		<link>https://www.firstpenguin.co.jp/vue/</link>
					<comments>https://www.firstpenguin.co.jp/vue/#respond</comments>
		
		<dc:creator><![CDATA[webmaster]]></dc:creator>
		<pubDate>Tue, 22 Jul 2025 14:20:30 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<category><![CDATA[Vue3]]></category>
		<guid isPermaLink="false">https://www.firstpenguin.co.jp/?p=930</guid>

					<description><![CDATA[Windows 10 / 11 に Vue 3 + Vuetify 3 + TypeScript + Vite の開発環境を構築する手順をわかりやすく説明します。]]></description>
										<content:encoded><![CDATA[<p>Windows 10 / 11 に Vue 3 + Vuetify 3 + TypeScript + Vite の開発環境を構築する手順をわかりやすく説明します。<br />
<div class="su-animate" style="opacity:0;-webkit-animation-duration:0.5s;-webkit-animation-delay:0.2s;animation-duration:0.5s;animation-delay:0.2s;" data-animation="fadeInUpBig" data-duration="0.5" data-delay="0.2">

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">前提条件</a><ol><li><a href="#toc2" tabindex="0">Node.js の確認・インストール</a></li></ol></li><li><a href="#toc3" tabindex="0">プロジェクトの作成</a><ol><li><a href="#toc4" tabindex="0">Vite で Vue 3 + TypeScript プロジェクトを作成</a></li></ol></li><li><a href="#toc5" tabindex="0">依存パッケージのインストール</a><ol><li><a href="#toc6" tabindex="0">Vuetify 3 のインストール</a></li></ol></li><li><a href="#toc7" tabindex="0">Vuetify のセットアップ</a><ol><li><a href="#toc8" tabindex="0">ディレクトリ作成</a></li><li><a href="#toc9" tabindex="0">src/plugins/vuetify.ts を作成</a></li></ol></li><li><a href="#toc10" tabindex="0">main.ts に Vuetify を組み込む</a></li><li><a href="#toc11" tabindex="0">Vite の設定（vite.config.ts）</a></li><li><a href="#toc12" tabindex="0">実行して確認</a></li><li><a href="#toc13" tabindex="0">動作確認用のサンプルコンポーネント</a></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">前提条件</span></h2>
<ul>
<li data-start="107" data-end="147">Node.js がインストールされていること（推奨: Node.js 18以上）</li>
<li data-start="107" data-end="147">npm（Node.js インストール時に自動で入る）</li>
</ul>
<h3 data-start="186" data-end="208"><span id="toc2">Node.js の確認・インストール</span></h3>
<div class="hcb_wrap">
</p><pre class="urvanov-syntax-highlighter-plain-tag">node -v
npm -v</pre><p>
</div>
<div>
<p data-start="236" data-end="293">インストールされていなければ、公式サイトからインストールしてください。<br data-start="271" data-end="274" /><a class="cursor-pointer" target="_new" data-start="274" data-end="293">https://nodejs.org/<span class="fa fa-external-link internal-icon anchor-icon"></span></a></p>
</div>
<div class="su-animate" style="opacity:0;-webkit-animation-duration:0.5s;-webkit-animation-delay:0.2s;animation-duration:0.5s;animation-delay:0.2s;" data-animation="fadeInUpBig" data-duration="0.5" data-delay="0.2">
<h2 data-start="236" data-end="293"><span id="toc3">プロジェクトの作成</span></h2>
<h3><span id="toc4">Vite で Vue 3 + TypeScript プロジェクトを作成</span></h3>
<div class="hcb_wrap">
<pre class="urvanov-syntax-highlighter-plain-tag">npm create vite@latest my-vue-vuetify-app -- --template vue-ts
cd my-vue-vuetify-app</pre>
my-vue-vuetify-app は任意のプロジェクト名に変更可</p>
<h2><span id="toc5">依存パッケージのインストール</span></h2>
</div>
</div>
<div class="hcb_wrap">
<pre class="urvanov-syntax-highlighter-plain-tag">npm install</pre>
</div>
<h3><span id="toc6">Vuetify 3 のインストール</span></h3>
<p>Vuetify 3 は Vue 3 に対応しています。<br data-start="609" data-end="612" />Vuetify 3 とアイコンフォントなど必要なパッケージを入れます。</p>
<div class="hcb_wrap">
<pre class="urvanov-syntax-highlighter-plain-tag">npm install vuetify@latest
npm install @mdi/font
npm install sass</pre>
</div>
<ul>
<li data-start="730" data-end="778"><code data-start="730" data-end="741">@mdi/font</code> は Material Design Icons のフォントを使用するため</li>
<li data-start="730" data-end="778"><code data-start="781" data-end="787">sass</code> は Vuetifyのスタイルで使われるため必要</li>
</ul>
</div>
<div class="su-animate" style="opacity:0;-webkit-animation-duration:0.5s;-webkit-animation-delay:0.2s;animation-duration:0.5s;animation-delay:0.2s;" data-animation="fadeInUpBig" data-duration="0.5" data-delay="0.2">
<h2 data-start="818" data-end="839"><span id="toc7">Vuetify のセットアップ</span></h2>
<p data-start="841" data-end="892"><code data-start="841" data-end="854">src/plugins</code> フォルダを作成し、<code data-start="864" data-end="876">vuetify.ts</code> ファイルを作るのが一般的です。</p>
<h3 data-start="894" data-end="911"><span id="toc8">ディレクトリ作成</span></h3>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="overflow-y-auto p-4" dir="ltr">
<div class="hcb_wrap">
<pre class="urvanov-syntax-highlighter-plain-tag">mkdir src/plugins</pre>
</div>
</div>
</div>
<h3 data-start="943" data-end="980"><span id="toc9">src/plugins/vuetify.ts を作成</span></h3>
<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary">
<div class="overflow-y-auto p-4" dir="ltr">
<div class="hcb_wrap">
<pre class="urvanov-syntax-highlighter-plain-tag">// @ts-ignore  ※@ts-ignore を使って型チェックだけ無視して問題ありません
import 'vuetify/styles' // Vuetify のスタイルを読み込む
import { createVuetify } from 'vuetify'
import { aliases, mdi } from 'vuetify/iconsets/mdi-svg'

export const vuetify = createVuetify({
  icons: {
    defaultSet: 'mdi',
    aliases,
    sets: {
      mdi,
    }
  },
})</pre>
</div>
</div>
</div>
</div>
<div class="su-animate" style="opacity:0;-webkit-animation-duration:0.5s;-webkit-animation-delay:0.2s;animation-duration:0.5s;animation-delay:0.2s;" data-animation="fadeInUpBig" data-duration="0.5" data-delay="0.2">
<h2 data-start="1300" data-end="1331"><span id="toc10">main.ts に Vuetify を組み込む</span></h2>
<p data-start="1333" data-end="1360"><code data-start="1333" data-end="1346">src/main.ts</code> を以下のように編集します。</p>
<div class="hcb_wrap">
<pre class="urvanov-syntax-highlighter-plain-tag">import { createApp } from 'vue'
import App from './App.vue'

import { vuetify } from './plugins/vuetify'

import '@mdi/font/css/materialdesignicons.css' // アイコン用CSS

const app = createApp(App)

app.use(vuetify)

app.mount('#app')</pre>
</div>
</div>
<div class="su-animate" style="opacity:0;-webkit-animation-duration:0.5s;-webkit-animation-delay:0.2s;animation-duration:0.5s;animation-delay:0.2s;" data-animation="fadeInUpBig" data-duration="0.5" data-delay="0.2">
<h2 data-start="1616" data-end="1648"><span id="toc11">Vite の設定（vite.config.ts）</span></h2>
<p data-start="1650" data-end="1721">Vuetifyのコンポーネントやスタイルを正しくビルドするために、<code data-start="1683" data-end="1699">vite.config.ts</code>にVuetify用プラグイン設定を入れます。</p>
<div class="hcb_wrap">
<pre class="urvanov-syntax-highlighter-plain-tag">import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vuetify from 'vite-plugin-vuetify'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vuetify({ autoImport: true }), // Vuetifyの自動インポート
　],
})&lt;span style=&quot;background-color: #ffffff; color: #333333; font-family: 'Kosugi Maru', sans-serif; font-size: 16px;&quot;&gt;&lt;/span&gt;</pre>
</div>
</div>
<div class="su-animate" style="opacity:0;-webkit-animation-duration:0.5s;-webkit-animation-delay:0.2s;animation-duration:0.5s;animation-delay:0.2s;" data-animation="fadeInUpBig" data-duration="0.5" data-delay="0.2">
<h2 data-start="2010" data-end="2022"><span id="toc12">実行して確認</span></h2>
<div class="hcb_wrap">
<pre class="urvanov-syntax-highlighter-plain-tag">npm run dev</pre>
</div>
<p>ブラウザで <a rel="nofollow noopener" target="_blank" href="http://localhost:5173"><code data-start="2055" data-end="2078">http://localhost:5173</code><span class="fa fa-external-link external-icon anchor-icon"></span></a> にアクセスし、Vue + Vuetify アプリが起動すれば成功です。<br />
</div>
<div class="su-animate" style="opacity:0;-webkit-animation-duration:0.5s;-webkit-animation-delay:0.2s;animation-duration:0.5s;animation-delay:0.2s;" data-animation="fadeInUpBig" data-duration="0.5" data-delay="0.2">
<h2 data-start="2121" data-end="2144"><span id="toc13">動作確認用のサンプルコンポーネント</span></h2>
<p data-start="2146" data-end="2192"><code data-start="2146" data-end="2159">src/App.vue</code> の内容を簡単にVuetifyのボタンを置いて確認してみましょう。</p>
<div class="hcb_wrap">
<pre class="urvanov-syntax-highlighter-plain-tag">&amp;lt;template&amp;gt;
&amp;lt;v-app&amp;gt;
&amp;lt;v-main&amp;gt;
&amp;lt;v-container class=&quot;pa-4&quot;&amp;gt;
&amp;lt;v-btn color=&quot;primary&quot;&amp;gt;Vuetify Button&amp;lt;/v-btn&amp;gt;
&amp;lt;/v-container&amp;gt;
&amp;lt;/v-main&amp;gt;
&amp;lt;/v-app&amp;gt;
&amp;lt;/template&amp;gt;

&amp;lt;script lang=&quot;ts&quot; setup&amp;gt;
// 特に記述なし
&amp;lt;/script&amp;gt;

&amp;lt;style&amp;gt;
/* 必要ならスタイルを追記 */
&amp;lt;/style&amp;gt;</pre>
</div>
</div>
<div class="su-animate" style="opacity:0;-webkit-animation-duration:0.5s;-webkit-animation-delay:0.2s;animation-duration:0.5s;animation-delay:0.2s;" data-animation="fadeInUpBig" data-duration="0.5" data-delay="0.2">
<h2 data-start="2472" data-end="2478"><span id="toc14">まとめ</span></h2>
<ul>
<li data-start="2482" data-end="2498">Node.js インストール済み</li>
<li data-start="2482" data-end="2498">npm create vite@latest プロジェクト名 &#8212; &#8211;template vue-ts</li>
<li data-start="2557" data-end="2588">Vuetify, sass, @mdi/font インストールVuetify プラグイン作成</li>
<li data-start="2557" data-end="2588">main.tsでVuetifyを登録</li>
<li data-start="2557" data-end="2588">vite.config.tsにvuetifyプラグイン追加</li>
<li data-start="2557" data-end="2588">npm run dev で起動</li>
</ul>
</div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.firstpenguin.co.jp/vue/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
