Chapter 04

アプリケーションを作成するまでにおけるエディター周りの初期設定

モッ
モッ
2025.03.14に更新

この手のformatterやコーディングスタンダードは最初に決めておかないと後から整えるのは骨が折れるので、先にきちんと設定しておくと良い。

indentとかの設定

indent=2に変更している

.prettierrc
@@ -6,7 +6,9 @@
     "printWidth": 150,
     "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-tailwindcss"],
     "tailwindFunctions": ["clsx", "cn"],
-    "tabWidth": 4,
+    "tabWidth": 2,
+    "trailingComma": "es5",
+    "arrowParens": "always",
     "overrides": [
         {
             "files": "**/*.yml",

これで

npm run format
.editorconfig
.editorconfig
@@ -8,11 +8,15 @@ indent_style = space
 insert_final_newline = true
 trim_trailing_whitespace = true

+[*.{json,js,jsx,ts,tsx}]
+indent_size = 2
+
 [*.md]
+indent_size = 2
 trim_trailing_whitespace = false

 [*.{yml,yaml}]
 indent_size = 2

 [docker-compose.yml]
-indent_size = 4
+indent_size = 2

pushする前に

npm run lint
npm run format
npm run types
php artisan test
./vendor/bin/pint

この5つのコマンドで確認するようにしている。

HMRの設定

HMRが設定されていないと開発が結構苦しいのでViteの設定でHMR(Hot Module Replacement)を適用する

vite.config.ts
import tailwindcss from '@tailwindcss/vite';
import react from '@vitejs/plugin-react';
import laravel from 'laravel-vite-plugin';
import { resolve } from 'node:path';
import { defineConfig, loadEnv } from 'vite';

export default defineConfig(({ mode }) => {
    const env = loadEnv(mode, process.cwd(), '');
    return {
        server: {
            host: true,
            port: env.VITE_PORT || 5173,
            origin: `http://${env.VITE_HMR_HOST}:${env.VITE_PORT || 5173}`,
            cors: true,
            hmr: {
                host: env.VITE_HMR_HOST || 'localhost',
            },
        },
        plugins: [
            laravel({
                input: ['resources/css/app.css', 'resources/js/app.tsx'],
                ssr: 'resources/js/ssr.tsx',
                refresh: true,
            }),
            react(),
            tailwindcss(),
        ],
        esbuild: {
            jsx: 'automatic',
        },
        resolve: {
            alias: {
                'ziggy-js': resolve(__dirname, 'vendor/tightenco/ziggy'),
            },
        },
    };
});

これに関しては

server: {
    host: true,
    port: env.VITE_PORT || 5173,
    origin: `http://${env.VITE_HMR_HOST}:${env.VITE_PORT || 5173}`,
    cors: true,
    hmr: {
        host: env.VITE_HMR_HOST || 'localhost',
    },
},

この部分が重要で

  • VITE_PORT
  • VITE_HMR_HOST

の2つの環境変数から値を取得するようにしている。これに伴い .env.exampleを更新してあるため、localhost以外で開発する場合はVITE_HMR_HOSTを変更する事。

設定できたらターミナルを分けて

npm run dev

する

いずれにせよ、編集がリアルタイムに伝わるようにする


Log inを書き換えているのがリアルタイムに変更されている

初期設定終わり

ここまでで初期設定完了。webアプリはどうしても初期設定が割と重たくなりがちであるが何とかこなして欲しい。