[{"data":1,"prerenderedAt":495},["ShallowReactive",2],{"navigation_docs":3,"-deploy-release-deploy":190,"-deploy-release-deploy-surround":490},[4,136,150,183],{"title":5,"path":6,"stem":7,"children":8},"Frontend","\u002Ffrontend","1.frontend",[9,13,39,76,109,130],{"title":10,"path":6,"stem":11,"order":12},"フロントエンド ガイドライン","1.frontend\u002Findex",1,{"title":14,"path":15,"stem":16,"children":17},"HTML","\u002Ffrontend\u002Fhtml","1.frontend\u002F1.html\u002Findex",[18,19,23,27,31,35],{"title":14,"path":15,"stem":16},{"title":20,"path":21,"stem":22},"コードスタイル","\u002Ffrontend\u002Fhtml\u002Fcode-style","1.frontend\u002F1.html\u002Fcode-style",{"title":24,"path":25,"stem":26},"見出しタグ","\u002Ffrontend\u002Fhtml\u002Fheading","1.frontend\u002F1.html\u002Fheading",{"title":28,"path":29,"stem":30},"img タグ","\u002Ffrontend\u002Fhtml\u002Fimg","1.frontend\u002F1.html\u002Fimg",{"title":32,"path":33,"stem":34},"パスとリンク","\u002Ffrontend\u002Fhtml\u002Flink","1.frontend\u002F1.html\u002Flink",{"title":36,"path":37,"stem":38},"品質管理","\u002Ffrontend\u002Fhtml\u002Fquality","1.frontend\u002F1.html\u002Fquality",{"title":40,"path":41,"stem":42,"children":43},"CSS","\u002Ffrontend\u002Fcss","1.frontend\u002F2.css\u002Findex",[44,45,49,52,56,60,64,68,72],{"title":40,"path":41,"stem":42},{"title":46,"path":47,"stem":48},"命名規則・コンポーネント設計","\u002Ffrontend\u002Fcss\u002Farchitecture","1.frontend\u002F2.css\u002Farchitecture",{"title":20,"path":50,"stem":51},"\u002Ffrontend\u002Fcss\u002Fcode-style","1.frontend\u002F2.css\u002Fcode-style",{"title":53,"path":54,"stem":55},"Web フォント","\u002Ffrontend\u002Fcss\u002Ffonts","1.frontend\u002F2.css\u002Ffonts",{"title":57,"path":58,"stem":59},"記述順番","\u002Ffrontend\u002Fcss\u002Forder","1.frontend\u002F2.css\u002Forder",{"title":61,"path":62,"stem":63},"プロパティのルール","\u002Ffrontend\u002Fcss\u002Fproperties","1.frontend\u002F2.css\u002Fproperties",{"title":65,"path":66,"stem":67},"Tailwind CSS","\u002Ffrontend\u002Fcss\u002Ftailwind","1.frontend\u002F2.css\u002Ftailwind",{"title":69,"path":70,"stem":71},"値のルール","\u002Ffrontend\u002Fcss\u002Fvalues","1.frontend\u002F2.css\u002Fvalues",{"title":73,"path":74,"stem":75},"CSS 変数（カスタムプロパティ）","\u002Ffrontend\u002Fcss\u002Fvariables","1.frontend\u002F2.css\u002Fvariables",{"title":77,"path":78,"stem":79,"children":80},"JavaScript","\u002Ffrontend\u002Fjs","1.frontend\u002F3.js\u002Findex",[81,82,85,89,93,97,101,105],{"title":77,"path":78,"stem":79},{"title":20,"path":83,"stem":84},"\u002Ffrontend\u002Fjs\u002Fcode-style","1.frontend\u002F3.js\u002Fcode-style",{"title":86,"path":87,"stem":88},"エラーハンドリング","\u002Ffrontend\u002Fjs\u002Ferror-handling","1.frontend\u002F3.js\u002Ferror-handling",{"title":90,"path":91,"stem":92},"ライブラリの利用","\u002Ffrontend\u002Fjs\u002Flibraries","1.frontend\u002F3.js\u002Flibraries",{"title":94,"path":95,"stem":96},"HTML への読み込み","\u002Ffrontend\u002Fjs\u002Floading","1.frontend\u002F3.js\u002Floading",{"title":98,"path":99,"stem":100},"モジュール","\u002Ffrontend\u002Fjs\u002Fmodule-structure","1.frontend\u002F3.js\u002Fmodule-structure",{"title":102,"path":103,"stem":104},"命名規則","\u002Ffrontend\u002Fjs\u002Fnaming","1.frontend\u002F3.js\u002Fnaming",{"title":106,"path":107,"stem":108},"パフォーマンス最適化","\u002Ffrontend\u002Fjs\u002Fperformance","1.frontend\u002F3.js\u002Fperformance",{"title":110,"path":111,"stem":112,"children":113},"画像・メディアリソースガイドライン","\u002Ffrontend\u002Fmedia","1.frontend\u002F4.media\u002Findex",[114,115,119,123,127],{"title":110,"path":111,"stem":112},{"title":116,"path":117,"stem":118},"アクセシビリティ","\u002Ffrontend\u002Fmedia\u002Faccessibility","1.frontend\u002F4.media\u002Faccessibility",{"title":120,"path":121,"stem":122},"画像フォーマット","\u002Ffrontend\u002Fmedia\u002Fformats","1.frontend\u002F4.media\u002Fformats",{"title":124,"path":125,"stem":126},"ファイル命名規則","\u002Ffrontend\u002Fmedia\u002Fnaming","1.frontend\u002F4.media\u002Fnaming",{"title":106,"path":128,"stem":129},"\u002Ffrontend\u002Fmedia\u002Foptimization","1.frontend\u002F4.media\u002Foptimization",{"title":131,"path":132,"stem":133,"children":134},"開発環境テンプレート","\u002Ffrontend\u002Fenvironment","1.frontend\u002F5.environment\u002Findex",[135],{"title":131,"path":132,"stem":133},{"title":137,"path":138,"stem":139,"children":140,"page":149},"Deploy Release","\u002Fdeploy-release","2.deploy-release",[141,145],{"title":142,"path":143,"stem":144},"デプロイ","\u002Fdeploy-release\u002Fdeploy","2.deploy-release\u002Fdeploy",{"title":146,"path":147,"stem":148},"リリース","\u002Fdeploy-release\u002Frelease","2.deploy-release\u002Frelease",false,{"title":151,"path":152,"stem":153,"children":154},"Git","\u002Fgit","3.git",[155,159,163,167,171,175,179],{"title":156,"path":152,"stem":157,"order":158},"Git ガイドライン","3.git\u002Findex",3,{"title":160,"path":161,"stem":162},"ブランチ戦略","\u002Fgit\u002Fbranch","3.git\u002Fbranch",{"title":164,"path":165,"stem":166},"CI\u002FCD運用","\u002Fgit\u002Fcicd","3.git\u002Fcicd",{"title":168,"path":169,"stem":170},"コミットメッセージとタグ","\u002Fgit\u002Fmessage","3.git\u002Fmessage",{"title":172,"path":173,"stem":174},"Pull Request運用","\u002Fgit\u002Fpull-request","3.git\u002Fpull-request",{"title":176,"path":177,"stem":178},"リポジトリ運用","\u002Fgit\u002Frepository","3.git\u002Frepository",{"title":180,"path":181,"stem":182},"GitHub権限・セキュリティ","\u002Fgit\u002Fsecurity","3.git\u002Fsecurity",{"title":184,"path":185,"stem":186,"children":187,"order":189},"AI 利用ガイドライン","\u002Fai","4.ai\u002Findex",[188],{"title":184,"path":185,"stem":186,"order":189},4,{"id":191,"title":142,"body":192,"description":483,"extension":484,"links":485,"meta":486,"navigation":487,"path":143,"seo":488,"stem":144,"__hash__":489},"docs\u002F2.deploy-release\u002Fdeploy.md",{"type":193,"value":194,"toc":478},"minimark",[195,203,208,212,216,221,227,238,322,327,334,403,408,411,474],[196,197,198,199,202],"caution",{},"アップロード漏れ、上書きミス、追跡困難のため原則として FTP による手動アップロードは禁止します。",[200,201],"br",{},"\n※サーバー環境、その他やむを得ない理由により GitHub Actions を利用できない場合はこの限りではありません。",[204,205,207],"h2",{"id":206},"cicd-の最適化","CI\u002FCD の最適化",[209,210,211],"h3",{"id":211},"キャッシュの利用",[213,214,215],"p",{},"CI\u002FCD の実行時間を短縮し、コストを削減するため、依存関係やビルド成果物のキャッシュを積極的に利用してください。",[217,218,220],"h4",{"id":219},"github-actions-でのキャッシュ設定","GitHub Actions でのキャッシュ設定",[213,222,223],{},[224,225,226],"strong",{},"Node.js 依存関係のキャッシュ",[213,228,229,233,234,237],{},[230,231,232],"code",{},"actions\u002Fsetup-node"," の ",[230,235,236],{},"cache"," オプションを使用する方法（推奨）：",[239,240,245],"pre",{"className":241,"code":242,"language":243,"meta":244,"style":244},"language-yaml shiki shiki-themes github-light material-theme material-theme-palenight","- name: Use Node.js 22\n  uses: actions\u002Fsetup-node@v4\n  with:\n    node-version: \"22\"\n    cache: \"npm\" # package-lock.json を自動検出してキャッシュ\n","yaml","",[230,246,247,266,277,285,302],{"__ignoreMap":244},[248,249,251,255,259,262],"span",{"class":250,"line":12},"line",[248,252,254],{"class":253},"sN50r","-",[248,256,258],{"class":257},"sF3G6"," name",[248,260,261],{"class":253},":",[248,263,265],{"class":264},"scigg"," Use Node.js 22\n",[248,267,269,272,274],{"class":250,"line":268},2,[248,270,271],{"class":257},"  uses",[248,273,261],{"class":253},[248,275,276],{"class":264}," actions\u002Fsetup-node@v4\n",[248,278,279,282],{"class":250,"line":158},[248,280,281],{"class":257},"  with",[248,283,284],{"class":253},":\n",[248,286,287,290,292,296,299],{"class":250,"line":189},[248,288,289],{"class":257},"    node-version",[248,291,261],{"class":253},[248,293,295],{"class":294},"ssQ5U"," \"",[248,297,298],{"class":264},"22",[248,300,301],{"class":294},"\"\n",[248,303,305,308,310,312,315,318],{"class":250,"line":304},5,[248,306,307],{"class":257},"    cache",[248,309,261],{"class":253},[248,311,295],{"class":294},[248,313,314],{"class":264},"npm",[248,316,317],{"class":294},"\"",[248,319,321],{"class":320},"su8Ar"," # package-lock.json を自動検出してキャッシュ\n",[213,323,324],{},[224,325,326],{},"手動でキャッシュを設定する方法",[213,328,329,330,333],{},"より細かい制御が必要な場合は ",[230,331,332],{},"actions\u002Fcache"," を使用：",[239,335,337],{"className":241,"code":336,"language":243,"meta":244,"style":244},"- name: Cache node modules\n  uses: actions\u002Fcache@v3\n  with:\n    path: ~\u002F.npm\n    key: ${{ runner.os }}-node-${{ hashFiles('**\u002Fpackage-lock.json') }}\n    restore-keys: |\n      ${{ runner.os }}-node-\n",[230,338,339,350,359,365,375,385,397],{"__ignoreMap":244},[248,340,341,343,345,347],{"class":250,"line":12},[248,342,254],{"class":253},[248,344,258],{"class":257},[248,346,261],{"class":253},[248,348,349],{"class":264}," Cache node modules\n",[248,351,352,354,356],{"class":250,"line":268},[248,353,271],{"class":257},[248,355,261],{"class":253},[248,357,358],{"class":264}," actions\u002Fcache@v3\n",[248,360,361,363],{"class":250,"line":158},[248,362,281],{"class":257},[248,364,284],{"class":253},[248,366,367,370,372],{"class":250,"line":189},[248,368,369],{"class":257},"    path",[248,371,261],{"class":253},[248,373,374],{"class":264}," ~\u002F.npm\n",[248,376,377,380,382],{"class":250,"line":304},[248,378,379],{"class":257},"    key",[248,381,261],{"class":253},[248,383,384],{"class":264}," ${{ runner.os }}-node-${{ hashFiles('**\u002Fpackage-lock.json') }}\n",[248,386,388,391,393],{"class":250,"line":387},6,[248,389,390],{"class":257},"    restore-keys",[248,392,261],{"class":253},[248,394,396],{"class":395},"sktmp"," |\n",[248,398,400],{"class":250,"line":399},7,[248,401,402],{"class":264},"      ${{ runner.os }}-node-\n",[213,404,405],{},[224,406,407],{},"ビルド成果物のキャッシュ",[213,409,410],{},"ビルド時間が長い場合は、ビルド成果物もキャッシュ対象に含めることを検討してください：",[239,412,414],{"className":241,"code":413,"language":243,"meta":244,"style":244},"- name: Cache build artifacts\n  uses: actions\u002Fcache@v3\n  with:\n    path: |\n      node_modules\n      .next  # Next.js の場合\n      dist   # ビルド出力ディレクトリ\n    key: ${{ runner.os }}-build-${{ hashFiles('**\u002Fpackage-lock.json') }}\n",[230,415,416,427,435,441,449,454,459,464],{"__ignoreMap":244},[248,417,418,420,422,424],{"class":250,"line":12},[248,419,254],{"class":253},[248,421,258],{"class":257},[248,423,261],{"class":253},[248,425,426],{"class":264}," Cache build artifacts\n",[248,428,429,431,433],{"class":250,"line":268},[248,430,271],{"class":257},[248,432,261],{"class":253},[248,434,358],{"class":264},[248,436,437,439],{"class":250,"line":158},[248,438,281],{"class":257},[248,440,284],{"class":253},[248,442,443,445,447],{"class":250,"line":189},[248,444,369],{"class":257},[248,446,261],{"class":253},[248,448,396],{"class":395},[248,450,451],{"class":250,"line":304},[248,452,453],{"class":264},"      node_modules\n",[248,455,456],{"class":250,"line":387},[248,457,458],{"class":264},"      .next  # Next.js の場合\n",[248,460,461],{"class":250,"line":399},[248,462,463],{"class":264},"      dist   # ビルド出力ディレクトリ\n",[248,465,467,469,471],{"class":250,"line":466},8,[248,468,379],{"class":257},[248,470,261],{"class":253},[248,472,473],{"class":264}," ${{ runner.os }}-build-${{ hashFiles('**\u002Fpackage-lock.json') }}\n",[475,476,477],"style",{},"html pre.shiki code .sN50r, html code.shiki .sN50r{--shiki-light:#24292E;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sF3G6, html code.shiki .sF3G6{--shiki-light:#22863A;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .scigg, html code.shiki .scigg{--shiki-light:#032F62;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .ssQ5U, html code.shiki .ssQ5U{--shiki-light:#032F62;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .su8Ar, html code.shiki .su8Ar{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sktmp, html code.shiki .sktmp{--shiki-light:#D73A49;--shiki-light-font-style:inherit;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":244,"searchDepth":268,"depth":268,"links":479},[480],{"id":206,"depth":268,"text":207,"children":481},[482],{"id":211,"depth":158,"text":211},"GitHub Actions 等の CI\u002FCD を用いて`main` や `develop` へのマージ、タグ付けをトリガーに自動デプロイを行い、ヒューマンエラーを減らします。","md",null,{},true,{"title":142,"description":483},"TjNkr6R4hdlBLUJgi8AoH6hOwivyKdX-v8ul0-TDRLk",[491,493],{"title":131,"path":132,"stem":133,"description":492,"children":-1},"本ガイドラインで定義しているコードスタイルや品質管理基準に準拠した静的サイト制作用の Vite テンプレートと、WordPress ローカル開発環境テンプレートです。",{"title":146,"path":147,"stem":148,"description":494,"children":-1},"本番環境への反映は CI\u002FCD による自動化を基本とします。",1780099574804]