このチャプターの目次
この手の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アプリはどうしても初期設定が割と重たくなりがちであるが何とかこなして欲しい。