fix oauth package name
This commit is contained in:
110
oauth/ENV_SETUP.md
Normal file
110
oauth/ENV_SETUP.md
Normal file
@ -0,0 +1,110 @@
|
||||
# 環境変数による機能切り替え
|
||||
|
||||
## 概要
|
||||
|
||||
開発用機能(TestUI、デバッグログ)をenv変数で簡単に有効/無効化できるようになりました。
|
||||
|
||||
## 設定ファイル
|
||||
|
||||
### 開発環境用: `.env`
|
||||
```bash
|
||||
# Development/Debug features
|
||||
VITE_ENABLE_TEST_UI=true
|
||||
VITE_ENABLE_DEBUG=true
|
||||
```
|
||||
|
||||
### 本番環境用: `.env.production`
|
||||
```bash
|
||||
# Production settings - Disable development features
|
||||
VITE_ENABLE_TEST_UI=false
|
||||
VITE_ENABLE_DEBUG=false
|
||||
```
|
||||
|
||||
## 制御される機能
|
||||
|
||||
### 1. TestUI コンポーネント
|
||||
- **制御**: `VITE_ENABLE_TEST_UI`
|
||||
- **true**: TestボタンとTestUI表示
|
||||
- **false**: TestUI関連が完全に非表示
|
||||
|
||||
### 2. デバッグログ
|
||||
- **制御**: `VITE_ENABLE_DEBUG`
|
||||
- **true**: console.log等が有効
|
||||
- **false**: すべてのlogが無効化
|
||||
|
||||
## 使い方
|
||||
|
||||
### 開発時
|
||||
```bash
|
||||
# .envで有効化されているので通常通り
|
||||
npm run dev
|
||||
npm run build
|
||||
```
|
||||
|
||||
### 本番デプロイ時
|
||||
```bash
|
||||
# 自動的に .env.production が読み込まれる
|
||||
npm run build
|
||||
|
||||
# または明示的に指定
|
||||
NODE_ENV=production npm run build
|
||||
```
|
||||
|
||||
### 手動切り替え
|
||||
```bash
|
||||
# 一時的にTestUIだけ無効化
|
||||
VITE_ENABLE_TEST_UI=false npm run dev
|
||||
|
||||
# 一時的にデバッグだけ無効化
|
||||
VITE_ENABLE_DEBUG=false npm run dev
|
||||
```
|
||||
|
||||
## 実装詳細
|
||||
|
||||
### App.jsx
|
||||
```jsx
|
||||
// Environment-based feature flags
|
||||
const ENABLE_TEST_UI = import.meta.env.VITE_ENABLE_TEST_UI === 'true'
|
||||
const ENABLE_DEBUG = import.meta.env.VITE_ENABLE_DEBUG === 'true'
|
||||
|
||||
// TestUI表示制御
|
||||
{ENABLE_TEST_UI && showTestUI && (
|
||||
<div className="test-section">
|
||||
<TestUI />
|
||||
</div>
|
||||
)}
|
||||
|
||||
// Testボタン表示制御
|
||||
{ENABLE_TEST_UI && (
|
||||
<div className="bottom-actions">
|
||||
<button onClick={() => setShowTestUI(!showTestUI)}>
|
||||
{showTestUI ? 'close test' : 'test'}
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
```
|
||||
|
||||
### logger.js
|
||||
```jsx
|
||||
class Logger {
|
||||
constructor() {
|
||||
this.isDev = import.meta.env.DEV || false
|
||||
this.debugEnabled = import.meta.env.VITE_ENABLE_DEBUG === 'true'
|
||||
this.isEnabled = this.isDev && this.debugEnabled
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## メリット
|
||||
|
||||
✅ **コード削除不要**: 機能を残したまま本番で無効化
|
||||
✅ **簡単切り替え**: env変数だけで制御
|
||||
✅ **自動化対応**: CI/CDで環境別自動ビルド可能
|
||||
✅ **デバッグ容易**: 必要時に即座に有効化可能
|
||||
|
||||
## 本番デプロイチェックリスト
|
||||
|
||||
- [ ] `.env.production`でTestUI無効化確認
|
||||
- [ ] `.env.production`でデバッグ無効化確認
|
||||
- [ ] 本番ビルドでTestボタン非表示確認
|
||||
- [ ] 本番でconsole.log出力なし確認
|
Reference in New Issue
Block a user