[{"data":1,"prerenderedAt":3641},["ShallowReactive",2],{"content-/eurekapu-nuxt3-migration-plan":3,"all-pages-for-dir":3619,"related-/eurekapu-nuxt3-migration-plan":3620,"og-image-/eurekapu-nuxt3-migration-plan":3640},{"id":4,"title":5,"body":6,"category":3607,"concepts":3607,"description":3608,"extension":2603,"meta":3609,"navigation":283,"ogImage":3607,"path":3610,"project_name":3607,"published":3611,"publishedAt":3612,"seo":3613,"source":3607,"stem":3614,"tags":3615,"todo":3607,"unpublished":3611,"updatedAt":3612,"__hash__":3618},"pages/2025-12/2025-12-18/eurekapu-nuxt3-migration-plan.md","Eurekapu移行計画: Nuxt 2 → Nuxt 3 + Vuetify 3",{"type":7,"value":8,"toc":3569},"minimark",[9,14,18,96,99,107,110,114,119,193,197,227,231,510,514,666,670,687,717,719,723,727,756,759,763,878,881,918,921,969,972,1009,1011,1015,1019,1312,1558,1560,1564,1567,1709,1712,2030,2315,2317,2320,2324,3297,3300,3319,3321,3324,3328,3365,3369,3402,3405,3420,3424,3463,3465,3468,3493,3495,3498,3525,3527,3530,3533,3548,3551,3565],[10,11,13],"h1",{"id":12},"eurekapu-移行計画-nuxt-2-nuxt-3-vuetify-3","Eurekapu 移行計画: Nuxt 2 → Nuxt 3 + Vuetify 3",[15,16,17],"h2",{"id":17},"概要",[19,20,21,37],"table",{},[22,23,24],"thead",{},[25,26,27,31,34],"tr",{},[28,29,30],"th",{},"項目",[28,32,33],{},"現在",[28,35,36],{},"移行先",[38,39,40,52,63,74,85],"tbody",{},[25,41,42,46,49],{},[43,44,45],"td",{},"フレームワーク",[43,47,48],{},"Nuxt 2.15.8",[43,50,51],{},"Nuxt 3",[25,53,54,57,60],{},[43,55,56],{},"UIライブラリ",[43,58,59],{},"Vuetify 1.x",[43,61,62],{},"Vuetify 3",[25,64,65,68,71],{},[43,66,67],{},"Vue",[43,69,70],{},"Vue 2 (Options API)",[43,72,73],{},"Vue 3 (Composition API)",[25,75,76,79,82],{},[43,77,78],{},"状態管理",[43,80,81],{},"Vuex",[43,83,84],{},"Pinia",[25,86,87,90,93],{},[43,88,89],{},"Vueファイル数",[43,91,92],{},"1052",[43,94,95],{},"-",[15,97,98],{"id":98},"移行戦略",[100,101,102,106],"p",{},[103,104,105],"strong",{},"段階的移行"," - 両プロジェクトを並行運用しながらセクションごとに移行",[108,109],"hr",{},[15,111,113],{"id":112},"phase-0-準備基盤構築","Phase 0: 準備（基盤構築）",[115,116,118],"h3",{"id":117},"_0-1-新規リポジトリ作成","0-1. 新規リポジトリ作成",[120,121,126],"pre",{"className":122,"code":123,"language":124,"meta":125,"style":125},"language-bash shiki shiki-themes vitesse-light vitesse-light","cd C:\\Users\\numbe\\Git_repo\nnpx nuxi@latest init eurekapu-nuxt3\ncd eurekapu-nuxt3\npnpm install\n","bash","",[127,128,129,161,177,184],"code",{"__ignoreMap":125},[130,131,134,138,142,146,149,152,155,158],"span",{"class":132,"line":133},"line",1,[130,135,137],{"class":136},"sz8Xr","cd",[130,139,141],{"class":140},"sdGka"," C:",[130,143,145],{"class":144},"snbK4","\\U",[130,147,148],{"class":140},"sers",[130,150,151],{"class":144},"\\n",[130,153,154],{"class":140},"umbe",[130,156,157],{"class":144},"\\G",[130,159,160],{"class":140},"it_repo\n",[130,162,164,168,171,174],{"class":132,"line":163},2,[130,165,167],{"class":166},"senZ8","npx",[130,169,170],{"class":140}," nuxi@latest",[130,172,173],{"class":140}," init",[130,175,176],{"class":140}," eurekapu-nuxt3\n",[130,178,180,182],{"class":132,"line":179},3,[130,181,137],{"class":136},[130,183,176],{"class":140},[130,185,187,190],{"class":132,"line":186},4,[130,188,189],{"class":166},"pnpm",[130,191,192],{"class":140}," install\n",[115,194,196],{"id":195},"_0-2-vuetify-3-インストール","0-2. Vuetify 3 インストール",[120,198,200],{"className":122,"code":199,"language":124,"meta":125,"style":125},"pnpm add -D vuetify vite-plugin-vuetify\npnpm add @mdi/font\n",[127,201,202,218],{"__ignoreMap":125},[130,203,204,206,209,212,215],{"class":132,"line":133},[130,205,189],{"class":166},[130,207,208],{"class":140}," add",[130,210,211],{"class":144}," -D",[130,213,214],{"class":140}," vuetify",[130,216,217],{"class":140}," vite-plugin-vuetify\n",[130,219,220,222,224],{"class":132,"line":163},[130,221,189],{"class":166},[130,223,208],{"class":140},[130,225,226],{"class":140}," @mdi/font\n",[115,228,230],{"id":229},"_0-3-nuxtconfigts-設定","0-3. nuxt.config.ts 設定",[120,232,236],{"className":233,"code":234,"language":235,"meta":125,"style":125},"language-typescript shiki shiki-themes vitesse-light vitesse-light","// nuxt.config.ts\nimport vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'\n\nexport default defineNuxtConfig({\n  build: {\n    transpile: ['vuetify'],\n  },\n  modules: [\n    (_options, nuxt) => {\n      nuxt.hooks.hook('vite:extendConfig', (config) => {\n        // @ts-expect-error\n        config.plugins.push(vuetify({ autoImport: true }))\n      })\n    },\n  ],\n  vite: {\n    vue: {\n      template: {\n        transformAssetUrls,\n      },\n    },\n  },\n})\n","typescript",[127,237,238,244,279,285,299,308,328,334,343,361,396,402,437,443,449,455,463,471,479,488,494,499,504],{"__ignoreMap":125},[130,239,240],{"class":132,"line":133},[130,241,243],{"class":242},"sxvE3","// nuxt.config.ts\n",[130,245,246,250,253,257,260,263,266,269,273,276],{"class":132,"line":163},[130,247,249],{"class":248},"sHkkW","import",[130,251,214],{"class":252},"s4oTP",[130,254,256],{"class":255},"shFtX",",",[130,258,259],{"class":255}," {",[130,261,262],{"class":252}," transformAssetUrls",[130,264,265],{"class":255}," }",[130,267,268],{"class":248}," from",[130,270,272],{"class":271},"sMJiu"," '",[130,274,275],{"class":140},"vite-plugin-vuetify",[130,277,278],{"class":271},"'\n",[130,280,281],{"class":132,"line":179},[130,282,284],{"emptyLinePlaceholder":283},true,"\n",[130,286,287,290,293,296],{"class":132,"line":186},[130,288,289],{"class":248},"export",[130,291,292],{"class":248}," default",[130,294,295],{"class":166}," defineNuxtConfig",[130,297,298],{"class":255},"({\n",[130,300,302,305],{"class":132,"line":301},5,[130,303,304],{"class":136},"  build",[130,306,307],{"class":255},": {\n",[130,309,311,314,317,320,323,325],{"class":132,"line":310},6,[130,312,313],{"class":136},"    transpile",[130,315,316],{"class":255},": [",[130,318,319],{"class":271},"'",[130,321,322],{"class":140},"vuetify",[130,324,319],{"class":271},[130,326,327],{"class":255},"],\n",[130,329,331],{"class":132,"line":330},7,[130,332,333],{"class":255},"  },\n",[130,335,337,340],{"class":132,"line":336},8,[130,338,339],{"class":136},"  modules",[130,341,342],{"class":255},": [\n",[130,344,346,349,352,355,358],{"class":132,"line":345},9,[130,347,348],{"class":255},"    (",[130,350,351],{"class":252},"_options",[130,353,354],{"class":255},", ",[130,356,357],{"class":252},"nuxt",[130,359,360],{"class":255},") => {\n",[130,362,364,367,370,373,375,378,381,383,386,388,391,394],{"class":132,"line":363},10,[130,365,366],{"class":252},"      nuxt",[130,368,369],{"class":255},".",[130,371,372],{"class":252},"hooks",[130,374,369],{"class":255},[130,376,377],{"class":166},"hook",[130,379,380],{"class":255},"(",[130,382,319],{"class":271},[130,384,385],{"class":140},"vite:extendConfig",[130,387,319],{"class":271},[130,389,390],{"class":255},", (",[130,392,393],{"class":252},"config",[130,395,360],{"class":255},[130,397,399],{"class":132,"line":398},11,[130,400,401],{"class":242},"        // @ts-expect-error\n",[130,403,405,408,410,413,415,418,420,422,425,428,431,434],{"class":132,"line":404},12,[130,406,407],{"class":252},"        config",[130,409,369],{"class":255},[130,411,412],{"class":252},"plugins",[130,414,369],{"class":255},[130,416,417],{"class":166},"push",[130,419,380],{"class":255},[130,421,322],{"class":166},[130,423,424],{"class":255},"({ ",[130,426,427],{"class":136},"autoImport",[130,429,430],{"class":255},": ",[130,432,433],{"class":248},"true",[130,435,436],{"class":255}," }))\n",[130,438,440],{"class":132,"line":439},13,[130,441,442],{"class":255},"      })\n",[130,444,446],{"class":132,"line":445},14,[130,447,448],{"class":255},"    },\n",[130,450,452],{"class":132,"line":451},15,[130,453,454],{"class":255},"  ],\n",[130,456,458,461],{"class":132,"line":457},16,[130,459,460],{"class":136},"  vite",[130,462,307],{"class":255},[130,464,466,469],{"class":132,"line":465},17,[130,467,468],{"class":136},"    vue",[130,470,307],{"class":255},[130,472,474,477],{"class":132,"line":473},18,[130,475,476],{"class":136},"      template",[130,478,307],{"class":255},[130,480,482,485],{"class":132,"line":481},19,[130,483,484],{"class":252},"        transformAssetUrls",[130,486,487],{"class":255},",\n",[130,489,491],{"class":132,"line":490},20,[130,492,493],{"class":255},"      },\n",[130,495,497],{"class":132,"line":496},21,[130,498,448],{"class":255},[130,500,502],{"class":132,"line":501},22,[130,503,333],{"class":255},[130,505,507],{"class":132,"line":506},23,[130,508,509],{"class":255},"})\n",[115,511,513],{"id":512},"_0-4-vuetify-プラグイン作成","0-4. Vuetify プラグイン作成",[120,515,517],{"className":233,"code":516,"language":235,"meta":125,"style":125},"// plugins/vuetify.ts\nimport '@mdi/font/css/materialdesignicons.css'\nimport 'vuetify/styles'\nimport { createVuetify } from 'vuetify'\n\nexport default defineNuxtPlugin((app) => {\n  const vuetify = createVuetify({\n    theme: {\n      defaultTheme: 'light',\n    },\n  })\n  app.vueApp.use(vuetify)\n})\n",[127,518,519,524,535,546,565,569,593,608,615,631,635,640,662],{"__ignoreMap":125},[130,520,521],{"class":132,"line":133},[130,522,523],{"class":242},"// plugins/vuetify.ts\n",[130,525,526,528,530,533],{"class":132,"line":163},[130,527,249],{"class":248},[130,529,272],{"class":271},[130,531,532],{"class":140},"@mdi/font/css/materialdesignicons.css",[130,534,278],{"class":271},[130,536,537,539,541,544],{"class":132,"line":179},[130,538,249],{"class":248},[130,540,272],{"class":271},[130,542,543],{"class":140},"vuetify/styles",[130,545,278],{"class":271},[130,547,548,550,552,555,557,559,561,563],{"class":132,"line":186},[130,549,249],{"class":248},[130,551,259],{"class":255},[130,553,554],{"class":252}," createVuetify",[130,556,265],{"class":255},[130,558,268],{"class":248},[130,560,272],{"class":271},[130,562,322],{"class":140},[130,564,278],{"class":271},[130,566,567],{"class":132,"line":301},[130,568,284],{"emptyLinePlaceholder":283},[130,570,571,573,575,578,581,584,587,590],{"class":132,"line":310},[130,572,289],{"class":248},[130,574,292],{"class":248},[130,576,577],{"class":166}," defineNuxtPlugin",[130,579,580],{"class":255},"((",[130,582,583],{"class":252},"app",[130,585,586],{"class":255},")",[130,588,589],{"class":255}," =>",[130,591,592],{"class":255}," {\n",[130,594,595,599,601,604,606],{"class":132,"line":330},[130,596,598],{"class":597},"stQ0i","  const ",[130,600,322],{"class":252},[130,602,603],{"class":255}," =",[130,605,554],{"class":166},[130,607,298],{"class":255},[130,609,610,613],{"class":132,"line":336},[130,611,612],{"class":136},"    theme",[130,614,307],{"class":255},[130,616,617,620,622,624,627,629],{"class":132,"line":345},[130,618,619],{"class":136},"      defaultTheme",[130,621,430],{"class":255},[130,623,319],{"class":271},[130,625,626],{"class":140},"light",[130,628,319],{"class":271},[130,630,487],{"class":255},[130,632,633],{"class":132,"line":363},[130,634,448],{"class":255},[130,636,637],{"class":132,"line":398},[130,638,639],{"class":255},"  })\n",[130,641,642,645,647,650,652,655,657,659],{"class":132,"line":404},[130,643,644],{"class":252},"  app",[130,646,369],{"class":255},[130,648,649],{"class":252},"vueApp",[130,651,369],{"class":255},[130,653,654],{"class":166},"use",[130,656,380],{"class":255},[130,658,322],{"class":252},[130,660,661],{"class":255},")\n",[130,663,664],{"class":132,"line":439},[130,665,509],{"class":255},[115,667,669],{"id":668},"_0-5-pinia-インストール","0-5. Pinia インストール",[120,671,673],{"className":122,"code":672,"language":124,"meta":125,"style":125},"pnpm add pinia @pinia/nuxt\n",[127,674,675],{"__ignoreMap":125},[130,676,677,679,681,684],{"class":132,"line":133},[130,678,189],{"class":166},[130,680,208],{"class":140},[130,682,683],{"class":140}," pinia",[130,685,686],{"class":140}," @pinia/nuxt\n",[120,688,690],{"className":233,"code":689,"language":235,"meta":125,"style":125},"// nuxt.config.ts に追加\nmodules: ['@pinia/nuxt'],\n",[127,691,692,697],{"__ignoreMap":125},[130,693,694],{"class":132,"line":133},[130,695,696],{"class":242},"// nuxt.config.ts に追加\n",[130,698,699,702,705,708,710,713,715],{"class":132,"line":163},[130,700,701],{"class":166},"modules",[130,703,704],{"class":255},":",[130,706,707],{"class":255}," [",[130,709,319],{"class":271},[130,711,712],{"class":140},"@pinia/nuxt",[130,714,319],{"class":271},[130,716,327],{"class":255},[108,718],{},[15,720,722],{"id":721},"phase-1-コアコンポーネント移行","Phase 1: コアコンポーネント移行",[115,724,726],{"id":725},"対象ファイル約20ファイル","対象ファイル（約20ファイル）",[728,729,730,736,741,746,751],"ul",{},[731,732,733],"li",{},[127,734,735],{},"layouts/default.vue",[731,737,738],{},[127,739,740],{},"components/BaseComponents/*.vue",[731,742,743],{},[127,744,745],{},"components/Menu.vue",[731,747,748],{},[127,749,750],{},"components/List.vue",[731,752,753],{},[127,754,755],{},"components/Breadcrumbs.vue",[115,757,758],{"id":758},"変換パターン",[760,761,762],"h4",{"id":762},"グリッドシステム",[120,764,768],{"className":765,"code":766,"language":767,"meta":125,"style":125},"language-vue shiki shiki-themes vitesse-light vitesse-light","\u003C!-- 旧 Vuetify 2 -->\n\u003Cv-layout row class=\"justify-center\">\n  \u003Cv-flex px-3 pt-1 xs12 sm6 md4>\n    内容\n  \u003C/v-flex>\n\u003C/v-layout>\n\n\u003C!-- 新 Vuetify 3 -->\n\u003Cv-row class=\"justify-center\">\n  \u003Cv-col cols=\"12\" sm=\"6\" md=\"4\" class=\"px-3 pt-1\">\n    内容\n  \u003C/v-col>\n\u003C/v-row>\n","vue",[127,769,770,775,803,809,814,819,828,832,837,856,861,865,870],{"__ignoreMap":125},[130,771,772],{"class":132,"line":133},[130,773,774],{"class":242},"\u003C!-- 旧 Vuetify 2 -->\n",[130,776,777,780,783,786,789,792,795,798,800],{"class":132,"line":163},[130,778,779],{"class":255},"\u003C",[130,781,782],{"class":248},"v-layout",[130,784,785],{"class":252}," row",[130,787,788],{"class":252}," class",[130,790,791],{"class":255},"=",[130,793,794],{"class":271},"\"",[130,796,797],{"class":140},"justify-center",[130,799,794],{"class":271},[130,801,802],{"class":255},">\n",[130,804,805],{"class":132,"line":179},[130,806,808],{"class":807},"sG7-3","  \u003Cv-flex px-3 pt-1 xs12 sm6 md4>\n",[130,810,811],{"class":132,"line":186},[130,812,813],{"class":807},"    内容\n",[130,815,816],{"class":132,"line":301},[130,817,818],{"class":807},"  \u003C/v-flex>\n",[130,820,821,824,826],{"class":132,"line":310},[130,822,823],{"class":255},"\u003C/",[130,825,782],{"class":248},[130,827,802],{"class":255},[130,829,830],{"class":132,"line":330},[130,831,284],{"emptyLinePlaceholder":283},[130,833,834],{"class":132,"line":336},[130,835,836],{"class":242},"\u003C!-- 新 Vuetify 3 -->\n",[130,838,839,841,844,846,848,850,852,854],{"class":132,"line":345},[130,840,779],{"class":255},[130,842,843],{"class":248},"v-row",[130,845,788],{"class":252},[130,847,791],{"class":255},[130,849,794],{"class":271},[130,851,797],{"class":140},[130,853,794],{"class":271},[130,855,802],{"class":255},[130,857,858],{"class":132,"line":363},[130,859,860],{"class":807},"  \u003Cv-col cols=\"12\" sm=\"6\" md=\"4\" class=\"px-3 pt-1\">\n",[130,862,863],{"class":132,"line":398},[130,864,813],{"class":807},[130,866,867],{"class":132,"line":404},[130,868,869],{"class":807},"  \u003C/v-col>\n",[130,871,872,874,876],{"class":132,"line":439},[130,873,823],{"class":255},[130,875,843],{"class":248},[130,877,802],{"class":255},[760,879,880],{"id":880},"カードコンポーネント",[120,882,884],{"className":765,"code":883,"language":767,"meta":125,"style":125},"\u003C!-- 旧 Vuetify 2 -->\n\u003Cv-card outlined flat>\n\n\u003C!-- 新 Vuetify 3 -->\n\u003Cv-card variant=\"outlined\" flat>\n",[127,885,886,890,905,909,913],{"__ignoreMap":125},[130,887,888],{"class":132,"line":133},[130,889,774],{"class":242},[130,891,892,894,897,900,903],{"class":132,"line":163},[130,893,779],{"class":255},[130,895,896],{"class":248},"v-card",[130,898,899],{"class":252}," outlined",[130,901,902],{"class":252}," flat",[130,904,802],{"class":255},[130,906,907],{"class":132,"line":179},[130,908,284],{"emptyLinePlaceholder":283},[130,910,911],{"class":132,"line":186},[130,912,836],{"class":807},[130,914,915],{"class":132,"line":301},[130,916,917],{"class":807},"\u003Cv-card variant=\"outlined\" flat>\n",[760,919,920],{"id":920},"ルーターリンク",[120,922,924],{"className":765,"code":923,"language":767,"meta":125,"style":125},"\u003C!-- 旧 Nuxt 2 -->\n\u003Cnuxt-link :to=\"path\">\n\n\u003C!-- 新 Nuxt 3 -->\n\u003CNuxtLink :to=\"path\">\n",[127,925,926,931,955,959,964],{"__ignoreMap":125},[130,927,928],{"class":132,"line":133},[130,929,930],{"class":242},"\u003C!-- 旧 Nuxt 2 -->\n",[130,932,933,935,938,941,944,946,948,951,953],{"class":132,"line":163},[130,934,779],{"class":255},[130,936,937],{"class":248},"nuxt-link",[130,939,940],{"class":255}," :",[130,942,943],{"class":166},"to",[130,945,791],{"class":255},[130,947,794],{"class":255},[130,949,950],{"class":252},"path",[130,952,794],{"class":255},[130,954,802],{"class":255},[130,956,957],{"class":132,"line":179},[130,958,284],{"emptyLinePlaceholder":283},[130,960,961],{"class":132,"line":186},[130,962,963],{"class":807},"\u003C!-- 新 Nuxt 3 -->\n",[130,965,966],{"class":132,"line":301},[130,967,968],{"class":807},"\u003CNuxtLink :to=\"path\">\n",[760,970,971],{"id":971},"ページスロット",[120,973,975],{"className":765,"code":974,"language":767,"meta":125,"style":125},"\u003C!-- 旧 layouts/default.vue -->\n\u003Cnuxt />\n\n\u003C!-- 新 layouts/default.vue -->\n\u003Cslot />\n",[127,976,977,982,991,995,1000],{"__ignoreMap":125},[130,978,979],{"class":132,"line":133},[130,980,981],{"class":242},"\u003C!-- 旧 layouts/default.vue -->\n",[130,983,984,986,988],{"class":132,"line":163},[130,985,779],{"class":255},[130,987,357],{"class":248},[130,989,990],{"class":255}," />\n",[130,992,993],{"class":132,"line":179},[130,994,284],{"emptyLinePlaceholder":283},[130,996,997],{"class":132,"line":186},[130,998,999],{"class":242},"\u003C!-- 新 layouts/default.vue -->\n",[130,1001,1002,1004,1007],{"class":132,"line":301},[130,1003,779],{"class":255},[130,1005,1006],{"class":248},"slot",[130,1008,990],{"class":255},[108,1010],{},[15,1012,1014],{"id":1013},"phase-2-状態管理","Phase 2: 状態管理",[115,1016,1018],{"id":1017},"vuex-pinia-変換","Vuex → Pinia 変換",[120,1020,1024],{"className":1021,"code":1022,"language":1023,"meta":125,"style":125},"language-javascript shiki shiki-themes vitesse-light vitesse-light","// 旧: store/index.js (Vuex)\nexport const state = () => ({\n  user: null,\n  isLoggedIn: false,\n})\n\nexport const getters = {\n  isAuthenticated: (state) => state.user,\n  isLoggedIn: (state) => state.isLoggedIn,\n  user: (state) => state.user,\n}\n\nexport const mutations = {\n  SET_USER(state, { user }) {\n    state.user = user\n    state.isLoggedIn = true\n  },\n}\n\nexport const actions = {\n  setUser({ commit }, payload) {\n    commit('SET_USER', payload)\n  },\n}\n","javascript",[127,1025,1026,1031,1051,1063,1075,1079,1083,1096,1122,1145,1167,1172,1176,1189,1210,1224,1237,1241,1245,1249,1262,1283,1303,1307],{"__ignoreMap":125},[130,1027,1028],{"class":132,"line":133},[130,1029,1030],{"class":242},"// 旧: store/index.js (Vuex)\n",[130,1032,1033,1035,1038,1041,1043,1046,1048],{"class":132,"line":163},[130,1034,289],{"class":248},[130,1036,1037],{"class":597}," const",[130,1039,1040],{"class":166}," state",[130,1042,603],{"class":255},[130,1044,1045],{"class":255}," ()",[130,1047,589],{"class":255},[130,1049,1050],{"class":255}," ({\n",[130,1052,1053,1056,1058,1061],{"class":132,"line":179},[130,1054,1055],{"class":136},"  user",[130,1057,704],{"class":255},[130,1059,1060],{"class":597}," null",[130,1062,487],{"class":255},[130,1064,1065,1068,1070,1073],{"class":132,"line":186},[130,1066,1067],{"class":136},"  isLoggedIn",[130,1069,704],{"class":255},[130,1071,1072],{"class":248}," false",[130,1074,487],{"class":255},[130,1076,1077],{"class":132,"line":301},[130,1078,509],{"class":255},[130,1080,1081],{"class":132,"line":310},[130,1082,284],{"emptyLinePlaceholder":283},[130,1084,1085,1087,1089,1092,1094],{"class":132,"line":330},[130,1086,289],{"class":248},[130,1088,1037],{"class":597},[130,1090,1091],{"class":252}," getters",[130,1093,603],{"class":255},[130,1095,592],{"class":255},[130,1097,1098,1101,1103,1106,1109,1111,1113,1115,1117,1120],{"class":132,"line":336},[130,1099,1100],{"class":166},"  isAuthenticated",[130,1102,704],{"class":255},[130,1104,1105],{"class":255}," (",[130,1107,1108],{"class":252},"state",[130,1110,586],{"class":255},[130,1112,589],{"class":255},[130,1114,1040],{"class":252},[130,1116,369],{"class":255},[130,1118,1119],{"class":252},"user",[130,1121,487],{"class":255},[130,1123,1124,1126,1128,1130,1132,1134,1136,1138,1140,1143],{"class":132,"line":345},[130,1125,1067],{"class":166},[130,1127,704],{"class":255},[130,1129,1105],{"class":255},[130,1131,1108],{"class":252},[130,1133,586],{"class":255},[130,1135,589],{"class":255},[130,1137,1040],{"class":252},[130,1139,369],{"class":255},[130,1141,1142],{"class":252},"isLoggedIn",[130,1144,487],{"class":255},[130,1146,1147,1149,1151,1153,1155,1157,1159,1161,1163,1165],{"class":132,"line":363},[130,1148,1055],{"class":166},[130,1150,704],{"class":255},[130,1152,1105],{"class":255},[130,1154,1108],{"class":252},[130,1156,586],{"class":255},[130,1158,589],{"class":255},[130,1160,1040],{"class":252},[130,1162,369],{"class":255},[130,1164,1119],{"class":252},[130,1166,487],{"class":255},[130,1168,1169],{"class":132,"line":398},[130,1170,1171],{"class":255},"}\n",[130,1173,1174],{"class":132,"line":404},[130,1175,284],{"emptyLinePlaceholder":283},[130,1177,1178,1180,1182,1185,1187],{"class":132,"line":439},[130,1179,289],{"class":248},[130,1181,1037],{"class":597},[130,1183,1184],{"class":252}," mutations",[130,1186,603],{"class":255},[130,1188,592],{"class":255},[130,1190,1191,1194,1196,1198,1200,1202,1205,1208],{"class":132,"line":445},[130,1192,1193],{"class":166},"  SET_USER",[130,1195,380],{"class":255},[130,1197,1108],{"class":252},[130,1199,256],{"class":255},[130,1201,259],{"class":255},[130,1203,1204],{"class":252}," user",[130,1206,1207],{"class":255}," })",[130,1209,592],{"class":255},[130,1211,1212,1215,1217,1219,1221],{"class":132,"line":451},[130,1213,1214],{"class":252},"    state",[130,1216,369],{"class":255},[130,1218,1119],{"class":252},[130,1220,603],{"class":255},[130,1222,1223],{"class":252}," user\n",[130,1225,1226,1228,1230,1232,1234],{"class":132,"line":457},[130,1227,1214],{"class":252},[130,1229,369],{"class":255},[130,1231,1142],{"class":252},[130,1233,603],{"class":255},[130,1235,1236],{"class":248}," true\n",[130,1238,1239],{"class":132,"line":465},[130,1240,333],{"class":255},[130,1242,1243],{"class":132,"line":473},[130,1244,1171],{"class":255},[130,1246,1247],{"class":132,"line":481},[130,1248,284],{"emptyLinePlaceholder":283},[130,1250,1251,1253,1255,1258,1260],{"class":132,"line":490},[130,1252,289],{"class":248},[130,1254,1037],{"class":597},[130,1256,1257],{"class":252}," actions",[130,1259,603],{"class":255},[130,1261,592],{"class":255},[130,1263,1264,1267,1270,1273,1276,1279,1281],{"class":132,"line":496},[130,1265,1266],{"class":166},"  setUser",[130,1268,1269],{"class":255},"({",[130,1271,1272],{"class":252}," commit",[130,1274,1275],{"class":255}," },",[130,1277,1278],{"class":252}," payload",[130,1280,586],{"class":255},[130,1282,592],{"class":255},[130,1284,1285,1288,1290,1292,1295,1297,1299,1301],{"class":132,"line":501},[130,1286,1287],{"class":166},"    commit",[130,1289,380],{"class":255},[130,1291,319],{"class":271},[130,1293,1294],{"class":140},"SET_USER",[130,1296,319],{"class":271},[130,1298,256],{"class":255},[130,1300,1278],{"class":252},[130,1302,661],{"class":255},[130,1304,1305],{"class":132,"line":506},[130,1306,333],{"class":255},[130,1308,1310],{"class":132,"line":1309},24,[130,1311,1171],{"class":255},[120,1313,1315],{"className":233,"code":1314,"language":235,"meta":125,"style":125},"// 新: stores/auth.ts (Pinia)\nimport { defineStore } from 'pinia'\n\nexport const useAuthStore = defineStore('auth', () => {\n  const user = ref\u003CUser | null>(null)\n  const isLoggedIn = computed(() => !!user.value)\n\n  function setUser(newUser: User) {\n    user.value = newUser\n  }\n\n  function logout() {\n    user.value = null\n  }\n\n  return {\n    user,\n    isLoggedIn,\n    setUser,\n    logout,\n  }\n})\n",[127,1316,1317,1322,1342,1346,1377,1407,1435,1439,1460,1474,1479,1483,1495,1508,1512,1516,1523,1529,1536,1543,1550,1554],{"__ignoreMap":125},[130,1318,1319],{"class":132,"line":133},[130,1320,1321],{"class":242},"// 新: stores/auth.ts (Pinia)\n",[130,1323,1324,1326,1328,1331,1333,1335,1337,1340],{"class":132,"line":163},[130,1325,249],{"class":248},[130,1327,259],{"class":255},[130,1329,1330],{"class":252}," defineStore",[130,1332,265],{"class":255},[130,1334,268],{"class":248},[130,1336,272],{"class":271},[130,1338,1339],{"class":140},"pinia",[130,1341,278],{"class":271},[130,1343,1344],{"class":132,"line":179},[130,1345,284],{"emptyLinePlaceholder":283},[130,1347,1348,1350,1353,1356,1358,1360,1362,1364,1367,1369,1371,1373,1375],{"class":132,"line":186},[130,1349,289],{"class":248},[130,1351,1352],{"class":597}," const ",[130,1354,1355],{"class":252},"useAuthStore",[130,1357,603],{"class":255},[130,1359,1330],{"class":166},[130,1361,380],{"class":255},[130,1363,319],{"class":271},[130,1365,1366],{"class":140},"auth",[130,1368,319],{"class":271},[130,1370,256],{"class":255},[130,1372,1045],{"class":255},[130,1374,589],{"class":255},[130,1376,592],{"class":255},[130,1378,1379,1381,1383,1385,1388,1390,1394,1397,1399,1402,1405],{"class":132,"line":301},[130,1380,598],{"class":597},[130,1382,1119],{"class":252},[130,1384,603],{"class":255},[130,1386,1387],{"class":166}," ref",[130,1389,779],{"class":255},[130,1391,1393],{"class":1392},"sSkh3","User",[130,1395,1396],{"class":255}," |",[130,1398,1060],{"class":597},[130,1400,1401],{"class":255},">(",[130,1403,1404],{"class":597},"null",[130,1406,661],{"class":255},[130,1408,1409,1411,1413,1415,1418,1421,1423,1426,1428,1430,1433],{"class":132,"line":310},[130,1410,598],{"class":597},[130,1412,1142],{"class":252},[130,1414,603],{"class":255},[130,1416,1417],{"class":166}," computed",[130,1419,1420],{"class":255},"(()",[130,1422,589],{"class":255},[130,1424,1425],{"class":597}," !!",[130,1427,1119],{"class":252},[130,1429,369],{"class":255},[130,1431,1432],{"class":252},"value",[130,1434,661],{"class":255},[130,1436,1437],{"class":132,"line":330},[130,1438,284],{"emptyLinePlaceholder":283},[130,1440,1441,1444,1447,1449,1452,1454,1456,1458],{"class":132,"line":336},[130,1442,1443],{"class":597},"  function ",[130,1445,1446],{"class":166},"setUser",[130,1448,380],{"class":255},[130,1450,1451],{"class":252},"newUser",[130,1453,430],{"class":255},[130,1455,1393],{"class":1392},[130,1457,586],{"class":255},[130,1459,592],{"class":255},[130,1461,1462,1465,1467,1469,1471],{"class":132,"line":345},[130,1463,1464],{"class":252},"    user",[130,1466,369],{"class":255},[130,1468,1432],{"class":252},[130,1470,603],{"class":255},[130,1472,1473],{"class":252}," newUser\n",[130,1475,1476],{"class":132,"line":363},[130,1477,1478],{"class":255},"  }\n",[130,1480,1481],{"class":132,"line":398},[130,1482,284],{"emptyLinePlaceholder":283},[130,1484,1485,1487,1490,1493],{"class":132,"line":404},[130,1486,1443],{"class":597},[130,1488,1489],{"class":166},"logout",[130,1491,1492],{"class":255},"()",[130,1494,592],{"class":255},[130,1496,1497,1499,1501,1503,1505],{"class":132,"line":439},[130,1498,1464],{"class":252},[130,1500,369],{"class":255},[130,1502,1432],{"class":252},[130,1504,603],{"class":255},[130,1506,1507],{"class":597}," null\n",[130,1509,1510],{"class":132,"line":445},[130,1511,1478],{"class":255},[130,1513,1514],{"class":132,"line":451},[130,1515,284],{"emptyLinePlaceholder":283},[130,1517,1518,1521],{"class":132,"line":457},[130,1519,1520],{"class":248},"  return",[130,1522,592],{"class":255},[130,1524,1525,1527],{"class":132,"line":465},[130,1526,1464],{"class":252},[130,1528,487],{"class":255},[130,1530,1531,1534],{"class":132,"line":473},[130,1532,1533],{"class":252},"    isLoggedIn",[130,1535,487],{"class":255},[130,1537,1538,1541],{"class":132,"line":481},[130,1539,1540],{"class":252},"    setUser",[130,1542,487],{"class":255},[130,1544,1545,1548],{"class":132,"line":490},[130,1546,1547],{"class":252},"    logout",[130,1549,487],{"class":255},[130,1551,1552],{"class":132,"line":496},[130,1553,1478],{"class":255},[130,1555,1556],{"class":132,"line":501},[130,1557,509],{"class":255},[108,1559],{},[15,1561,1563],{"id":1562},"phase-3-ページ移行セクション別","Phase 3: ページ移行（セクション別）",[115,1565,1566],{"id":1566},"移行優先順位",[19,1568,1569,1585],{},[22,1570,1571],{},[25,1572,1573,1576,1579,1582],{},[28,1574,1575],{},"優先度",[28,1577,1578],{},"セクション",[28,1580,1581],{},"ファイル数",[28,1583,1584],{},"備考",[38,1586,1587,1603,1619,1635,1650,1666,1681,1695],{},[25,1588,1589,1592,1597,1600],{},[43,1590,1591],{},"1",[43,1593,1594],{},[127,1595,1596],{},"pages/lessons/financial-statements/",[43,1598,1599],{},"42",[43,1601,1602],{},"メイン教材",[25,1604,1605,1608,1613,1616],{},[43,1606,1607],{},"2",[43,1609,1610],{},[127,1611,1612],{},"pages/lessons/intro-to-accounting/",[43,1614,1615],{},"~50",[43,1617,1618],{},"基礎コンテンツ",[25,1620,1621,1624,1629,1632],{},[43,1622,1623],{},"3",[43,1625,1626],{},[127,1627,1628],{},"pages/lessons/excel/",[43,1630,1631],{},"~60",[43,1633,1634],{},"独立性高い",[25,1636,1637,1640,1645,1648],{},[43,1638,1639],{},"4",[43,1641,1642],{},[127,1643,1644],{},"pages/lessons/excel-shortcuts/",[43,1646,1647],{},"~40",[43,1649,1634],{},[25,1651,1652,1655,1660,1663],{},[43,1653,1654],{},"5",[43,1656,1657],{},[127,1658,1659],{},"pages/lessons/boki3/",[43,1661,1662],{},"~300",[43,1664,1665],{},"大規模",[25,1667,1668,1671,1676,1679],{},[43,1669,1670],{},"6",[43,1672,1673],{},[127,1674,1675],{},"pages/lessons/bookkeeping/",[43,1677,1678],{},"~100",[43,1680,95],{},[25,1682,1683,1686,1691,1693],{},[43,1684,1685],{},"7",[43,1687,1688],{},[127,1689,1690],{},"pages/lessons/consolidated/",[43,1692,1615],{},[43,1694,95],{},[25,1696,1697,1700,1703,1706],{},[43,1698,1699],{},"8",[43,1701,1702],{},"その他",[43,1704,1705],{},"残り",[43,1707,1708],{},"順次対応",[115,1710,1711],{"id":1711},"ページ変換例",[120,1713,1715],{"className":765,"code":1714,"language":767,"meta":125,"style":125},"\u003C!-- 旧: pages/lessons/financial-statements/no0-introduction.vue -->\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Cv-layout row class=\"justify-center\">\n      \u003Cv-flex px-3 pt-1 xs12 sm12 md10 lg7>\n        \u003Ch1>タイトル\u003C/h1>\n        \u003Cnuxt-link :to=\"items[2].children[0].url\">\n          リンク\n        \u003C/nuxt-link>\n      \u003C/v-flex>\n    \u003C/v-layout>\n  \u003C/div>\n\u003C/template>\n\n\u003Cscript>\nexport default {\n  data() {\n    return {\n      items: [],\n    }\n  },\n  computed: {\n    someValue() {\n      return this.items.length\n    },\n  },\n  methods: {\n    handleClick() {\n      // ...\n    },\n  },\n}\n\u003C/script>\n",[127,1716,1717,1722,1731,1741,1762,1790,1809,1829,1834,1843,1852,1861,1870,1878,1882,1891,1899,1908,1915,1925,1930,1934,1943,1952,1970,1975,1980,1990,2000,2006,2011,2016,2021],{"__ignoreMap":125},[130,1718,1719],{"class":132,"line":133},[130,1720,1721],{"class":242},"\u003C!-- 旧: pages/lessons/financial-statements/no0-introduction.vue -->\n",[130,1723,1724,1726,1729],{"class":132,"line":163},[130,1725,779],{"class":255},[130,1727,1728],{"class":248},"template",[130,1730,802],{"class":255},[130,1732,1733,1736,1739],{"class":132,"line":179},[130,1734,1735],{"class":255},"  \u003C",[130,1737,1738],{"class":248},"div",[130,1740,802],{"class":255},[130,1742,1743,1746,1748,1750,1752,1754,1756,1758,1760],{"class":132,"line":186},[130,1744,1745],{"class":255},"    \u003C",[130,1747,782],{"class":248},[130,1749,785],{"class":252},[130,1751,788],{"class":252},[130,1753,791],{"class":255},[130,1755,794],{"class":271},[130,1757,797],{"class":140},[130,1759,794],{"class":271},[130,1761,802],{"class":255},[130,1763,1764,1767,1770,1773,1776,1779,1782,1785,1788],{"class":132,"line":301},[130,1765,1766],{"class":255},"      \u003C",[130,1768,1769],{"class":248},"v-flex",[130,1771,1772],{"class":252}," px-3",[130,1774,1775],{"class":252}," pt-1",[130,1777,1778],{"class":252}," xs12",[130,1780,1781],{"class":252}," sm12",[130,1783,1784],{"class":252}," md10",[130,1786,1787],{"class":252}," lg7",[130,1789,802],{"class":255},[130,1791,1792,1795,1797,1800,1803,1805,1807],{"class":132,"line":310},[130,1793,1794],{"class":255},"        \u003C",[130,1796,10],{"class":248},[130,1798,1799],{"class":255},">",[130,1801,1802],{"class":807},"タイトル",[130,1804,823],{"class":255},[130,1806,10],{"class":248},[130,1808,802],{"class":255},[130,1810,1811,1813,1815,1818,1820,1822,1825,1827],{"class":132,"line":330},[130,1812,1794],{"class":255},[130,1814,937],{"class":248},[130,1816,1817],{"class":252}," :to",[130,1819,791],{"class":255},[130,1821,794],{"class":271},[130,1823,1824],{"class":140},"items[2].children[0].url",[130,1826,794],{"class":271},[130,1828,802],{"class":255},[130,1830,1831],{"class":132,"line":336},[130,1832,1833],{"class":807},"          リンク\n",[130,1835,1836,1839,1841],{"class":132,"line":345},[130,1837,1838],{"class":255},"        \u003C/",[130,1840,937],{"class":248},[130,1842,802],{"class":255},[130,1844,1845,1848,1850],{"class":132,"line":363},[130,1846,1847],{"class":255},"      \u003C/",[130,1849,1769],{"class":248},[130,1851,802],{"class":255},[130,1853,1854,1857,1859],{"class":132,"line":398},[130,1855,1856],{"class":255},"    \u003C/",[130,1858,782],{"class":248},[130,1860,802],{"class":255},[130,1862,1863,1866,1868],{"class":132,"line":404},[130,1864,1865],{"class":255},"  \u003C/",[130,1867,1738],{"class":248},[130,1869,802],{"class":255},[130,1871,1872,1874,1876],{"class":132,"line":439},[130,1873,823],{"class":255},[130,1875,1728],{"class":248},[130,1877,802],{"class":255},[130,1879,1880],{"class":132,"line":445},[130,1881,284],{"emptyLinePlaceholder":283},[130,1883,1884,1886,1889],{"class":132,"line":451},[130,1885,779],{"class":255},[130,1887,1888],{"class":248},"script",[130,1890,802],{"class":255},[130,1892,1893,1895,1897],{"class":132,"line":457},[130,1894,289],{"class":248},[130,1896,292],{"class":248},[130,1898,592],{"class":255},[130,1900,1901,1904,1906],{"class":132,"line":465},[130,1902,1903],{"class":166},"  data",[130,1905,1492],{"class":255},[130,1907,592],{"class":255},[130,1909,1910,1913],{"class":132,"line":473},[130,1911,1912],{"class":248},"    return",[130,1914,592],{"class":255},[130,1916,1917,1920,1922],{"class":132,"line":481},[130,1918,1919],{"class":136},"      items",[130,1921,704],{"class":255},[130,1923,1924],{"class":255}," [],\n",[130,1926,1927],{"class":132,"line":490},[130,1928,1929],{"class":255},"    }\n",[130,1931,1932],{"class":132,"line":496},[130,1933,333],{"class":255},[130,1935,1936,1939,1941],{"class":132,"line":501},[130,1937,1938],{"class":136},"  computed",[130,1940,704],{"class":255},[130,1942,592],{"class":255},[130,1944,1945,1948,1950],{"class":132,"line":506},[130,1946,1947],{"class":166},"    someValue",[130,1949,1492],{"class":255},[130,1951,592],{"class":255},[130,1953,1954,1957,1960,1962,1965,1967],{"class":132,"line":1309},[130,1955,1956],{"class":248},"      return",[130,1958,1959],{"class":144}," this",[130,1961,369],{"class":255},[130,1963,1964],{"class":252},"items",[130,1966,369],{"class":255},[130,1968,1969],{"class":136},"length\n",[130,1971,1973],{"class":132,"line":1972},25,[130,1974,448],{"class":255},[130,1976,1978],{"class":132,"line":1977},26,[130,1979,333],{"class":255},[130,1981,1983,1986,1988],{"class":132,"line":1982},27,[130,1984,1985],{"class":136},"  methods",[130,1987,704],{"class":255},[130,1989,592],{"class":255},[130,1991,1993,1996,1998],{"class":132,"line":1992},28,[130,1994,1995],{"class":166},"    handleClick",[130,1997,1492],{"class":255},[130,1999,592],{"class":255},[130,2001,2003],{"class":132,"line":2002},29,[130,2004,2005],{"class":242},"      // ...\n",[130,2007,2009],{"class":132,"line":2008},30,[130,2010,448],{"class":255},[130,2012,2014],{"class":132,"line":2013},31,[130,2015,333],{"class":255},[130,2017,2019],{"class":132,"line":2018},32,[130,2020,1171],{"class":255},[130,2022,2024,2026,2028],{"class":132,"line":2023},33,[130,2025,823],{"class":255},[130,2027,1888],{"class":248},[130,2029,802],{"class":255},[120,2031,2033],{"className":765,"code":2032,"language":767,"meta":125,"style":125},"\u003C!-- 新: pages/lessons/financial-statements/no0-introduction.vue -->\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Cv-row class=\"justify-center\">\n      \u003Cv-col cols=\"12\" md=\"10\" lg=\"7\" class=\"px-3 pt-1\">\n        \u003Ch1>タイトル\u003C/h1>\n        \u003CNuxtLink :to=\"items[2].children[0].url\">\n          リンク\n        \u003C/NuxtLink>\n      \u003C/v-col>\n    \u003C/v-row>\n  \u003C/div>\n\u003C/template>\n\n\u003Cscript setup lang=\"ts\">\nconst items = ref([])\n\nconst someValue = computed(() => items.value.length)\n\nfunction handleClick() {\n  // ...\n}\n\u003C/script>\n",[127,2034,2035,2040,2048,2056,2074,2129,2145,2164,2168,2176,2184,2192,2200,2208,2212,2235,2249,2253,2282,2286,2298,2303,2307],{"__ignoreMap":125},[130,2036,2037],{"class":132,"line":133},[130,2038,2039],{"class":242},"\u003C!-- 新: pages/lessons/financial-statements/no0-introduction.vue -->\n",[130,2041,2042,2044,2046],{"class":132,"line":163},[130,2043,779],{"class":255},[130,2045,1728],{"class":248},[130,2047,802],{"class":255},[130,2049,2050,2052,2054],{"class":132,"line":179},[130,2051,1735],{"class":255},[130,2053,1738],{"class":248},[130,2055,802],{"class":255},[130,2057,2058,2060,2062,2064,2066,2068,2070,2072],{"class":132,"line":186},[130,2059,1745],{"class":255},[130,2061,843],{"class":248},[130,2063,788],{"class":252},[130,2065,791],{"class":255},[130,2067,794],{"class":271},[130,2069,797],{"class":140},[130,2071,794],{"class":271},[130,2073,802],{"class":255},[130,2075,2076,2078,2081,2084,2086,2088,2091,2093,2096,2098,2100,2103,2105,2108,2110,2112,2114,2116,2118,2120,2122,2125,2127],{"class":132,"line":301},[130,2077,1766],{"class":255},[130,2079,2080],{"class":248},"v-col",[130,2082,2083],{"class":252}," cols",[130,2085,791],{"class":255},[130,2087,794],{"class":271},[130,2089,2090],{"class":140},"12",[130,2092,794],{"class":271},[130,2094,2095],{"class":252}," md",[130,2097,791],{"class":255},[130,2099,794],{"class":271},[130,2101,2102],{"class":140},"10",[130,2104,794],{"class":271},[130,2106,2107],{"class":252}," lg",[130,2109,791],{"class":255},[130,2111,794],{"class":271},[130,2113,1685],{"class":140},[130,2115,794],{"class":271},[130,2117,788],{"class":252},[130,2119,791],{"class":255},[130,2121,794],{"class":271},[130,2123,2124],{"class":140},"px-3 pt-1",[130,2126,794],{"class":271},[130,2128,802],{"class":255},[130,2130,2131,2133,2135,2137,2139,2141,2143],{"class":132,"line":310},[130,2132,1794],{"class":255},[130,2134,10],{"class":248},[130,2136,1799],{"class":255},[130,2138,1802],{"class":807},[130,2140,823],{"class":255},[130,2142,10],{"class":248},[130,2144,802],{"class":255},[130,2146,2147,2149,2152,2154,2156,2158,2160,2162],{"class":132,"line":330},[130,2148,1794],{"class":255},[130,2150,2151],{"class":248},"NuxtLink",[130,2153,1817],{"class":252},[130,2155,791],{"class":255},[130,2157,794],{"class":271},[130,2159,1824],{"class":140},[130,2161,794],{"class":271},[130,2163,802],{"class":255},[130,2165,2166],{"class":132,"line":336},[130,2167,1833],{"class":807},[130,2169,2170,2172,2174],{"class":132,"line":345},[130,2171,1838],{"class":255},[130,2173,2151],{"class":248},[130,2175,802],{"class":255},[130,2177,2178,2180,2182],{"class":132,"line":363},[130,2179,1847],{"class":255},[130,2181,2080],{"class":248},[130,2183,802],{"class":255},[130,2185,2186,2188,2190],{"class":132,"line":398},[130,2187,1856],{"class":255},[130,2189,843],{"class":248},[130,2191,802],{"class":255},[130,2193,2194,2196,2198],{"class":132,"line":404},[130,2195,1865],{"class":255},[130,2197,1738],{"class":248},[130,2199,802],{"class":255},[130,2201,2202,2204,2206],{"class":132,"line":439},[130,2203,823],{"class":255},[130,2205,1728],{"class":248},[130,2207,802],{"class":255},[130,2209,2210],{"class":132,"line":445},[130,2211,284],{"emptyLinePlaceholder":283},[130,2213,2214,2216,2218,2221,2224,2226,2228,2231,2233],{"class":132,"line":451},[130,2215,779],{"class":255},[130,2217,1888],{"class":248},[130,2219,2220],{"class":252}," setup",[130,2222,2223],{"class":252}," lang",[130,2225,791],{"class":255},[130,2227,794],{"class":271},[130,2229,2230],{"class":140},"ts",[130,2232,794],{"class":271},[130,2234,802],{"class":255},[130,2236,2237,2240,2242,2244,2246],{"class":132,"line":457},[130,2238,2239],{"class":597},"const ",[130,2241,1964],{"class":252},[130,2243,603],{"class":255},[130,2245,1387],{"class":166},[130,2247,2248],{"class":255},"([])\n",[130,2250,2251],{"class":132,"line":465},[130,2252,284],{"emptyLinePlaceholder":283},[130,2254,2255,2257,2260,2262,2264,2266,2268,2271,2273,2275,2277,2280],{"class":132,"line":473},[130,2256,2239],{"class":597},[130,2258,2259],{"class":252},"someValue",[130,2261,603],{"class":255},[130,2263,1417],{"class":166},[130,2265,1420],{"class":255},[130,2267,589],{"class":255},[130,2269,2270],{"class":252}," items",[130,2272,369],{"class":255},[130,2274,1432],{"class":252},[130,2276,369],{"class":255},[130,2278,2279],{"class":136},"length",[130,2281,661],{"class":255},[130,2283,2284],{"class":132,"line":481},[130,2285,284],{"emptyLinePlaceholder":283},[130,2287,2288,2291,2294,2296],{"class":132,"line":490},[130,2289,2290],{"class":597},"function",[130,2292,2293],{"class":166}," handleClick",[130,2295,1492],{"class":255},[130,2297,592],{"class":255},[130,2299,2300],{"class":132,"line":496},[130,2301,2302],{"class":242},"  // ...\n",[130,2304,2305],{"class":132,"line":501},[130,2306,1171],{"class":255},[130,2308,2309,2311,2313],{"class":132,"line":506},[130,2310,823],{"class":255},[130,2312,1888],{"class":248},[130,2314,802],{"class":255},[108,2316],{},[15,2318,2319],{"id":2319},"自動変換スクリプト",[115,2321,2323],{"id":2322},"scriptsmigrate-vuetifymjs","scripts/migrate-vuetify.mjs",[120,2325,2327],{"className":1021,"code":2326,"language":1023,"meta":125,"style":125},"import fs from 'fs'\nimport path from 'path'\nimport { glob } from 'glob'\n\nconst replacements = [\n  // グリッドシステム\n  [/\u003Cv-layout\\s+row/g, '\u003Cv-row'],\n  [/\u003C\\/v-layout>/g, '\u003C/v-row>'],\n  [/\u003Cv-flex\\s+([^>]*?)xs(\\d+)/g, '\u003Cv-col $1cols=\"$2\"'],\n  [/\u003Cv-flex\\s+([^>]*?)sm(\\d+)/g, '\u003Cv-col $1sm=\"$2\"'],\n  [/\u003Cv-flex\\s+([^>]*?)md(\\d+)/g, '\u003Cv-col $1md=\"$2\"'],\n  [/\u003Cv-flex\\s+([^>]*?)lg(\\d+)/g, '\u003Cv-col $1lg=\"$2\"'],\n  [/\u003Cv-flex/g, '\u003Cv-col'],\n  [/\u003C\\/v-flex>/g, '\u003C/v-col>'],\n\n  // カード\n  [/\\soutlined(?=[\\s>])/g, ' variant=\"outlined\"'],\n  [/\\sflat(?=[\\s>])/g, ' flat'],\n\n  // ルーター\n  [/\u003Cnuxt-link/g, '\u003CNuxtLink'],\n  [/\u003C\\/nuxt-link>/g, '\u003C/NuxtLink>'],\n\n  // レイアウト\n  [/\u003Cnuxt\\s*\\/>/g, '\u003Cslot />'],\n]\n\nasync function migrateFile(filePath) {\n  let content = fs.readFileSync(filePath, 'utf-8')\n  let modified = false\n\n  for (const [pattern, replacement] of replacements) {\n    if (pattern.test(content)) {\n      content = content.replace(pattern, replacement)\n      modified = true\n    }\n  }\n\n  if (modified) {\n    fs.writeFileSync(filePath, content, 'utf-8')\n    console.log(`Migrated: ${filePath}`)\n  }\n}\n\nasync function main() {\n  const files = await glob('**/*.vue', { ignore: 'node_modules/**' })\n  for (const file of files) {\n    await migrateFile(file)\n  }\n}\n\nmain()\n",[127,2328,2329,2345,2360,2380,2384,2397,2402,2441,2471,2527,2577,2627,2677,2700,2728,2732,2737,2773,2806,2810,2815,2839,2867,2871,2876,2909,2914,2918,2938,2970,2982,2986,3016,3040,3065,3075,3080,3085,3090,3105,3134,3165,3170,3175,3180,3194,3238,3258,3273,3278,3283,3288],{"__ignoreMap":125},[130,2330,2331,2333,2336,2338,2340,2343],{"class":132,"line":133},[130,2332,249],{"class":248},[130,2334,2335],{"class":252}," fs",[130,2337,268],{"class":248},[130,2339,272],{"class":271},[130,2341,2342],{"class":140},"fs",[130,2344,278],{"class":271},[130,2346,2347,2349,2352,2354,2356,2358],{"class":132,"line":163},[130,2348,249],{"class":248},[130,2350,2351],{"class":252}," path",[130,2353,268],{"class":248},[130,2355,272],{"class":271},[130,2357,950],{"class":140},[130,2359,278],{"class":271},[130,2361,2362,2364,2366,2369,2371,2373,2375,2378],{"class":132,"line":179},[130,2363,249],{"class":248},[130,2365,259],{"class":255},[130,2367,2368],{"class":252}," glob",[130,2370,265],{"class":255},[130,2372,268],{"class":248},[130,2374,272],{"class":271},[130,2376,2377],{"class":140},"glob",[130,2379,278],{"class":271},[130,2381,2382],{"class":132,"line":186},[130,2383,284],{"emptyLinePlaceholder":283},[130,2385,2386,2389,2392,2394],{"class":132,"line":301},[130,2387,2388],{"class":597},"const",[130,2390,2391],{"class":252}," replacements",[130,2393,603],{"class":255},[130,2395,2396],{"class":255}," [\n",[130,2398,2399],{"class":132,"line":310},[130,2400,2401],{"class":242},"  // グリッドシステム\n",[130,2403,2404,2407,2410,2414,2418,2422,2425,2427,2430,2432,2434,2437,2439],{"class":132,"line":330},[130,2405,2406],{"class":255},"  [",[130,2408,2409],{"class":271},"/",[130,2411,2413],{"class":2412},"sLkVR","\u003Cv-layout",[130,2415,2417],{"class":2416},"she3A","\\s",[130,2419,2421],{"class":2420},"sM54T","+",[130,2423,2424],{"class":2412},"row",[130,2426,2409],{"class":271},[130,2428,2429],{"class":248},"g",[130,2431,256],{"class":255},[130,2433,272],{"class":271},[130,2435,2436],{"class":140},"\u003Cv-row",[130,2438,319],{"class":271},[130,2440,327],{"class":255},[130,2442,2443,2445,2447,2449,2453,2456,2458,2460,2462,2464,2467,2469],{"class":132,"line":336},[130,2444,2406],{"class":255},[130,2446,2409],{"class":271},[130,2448,779],{"class":2412},[130,2450,2452],{"class":2451},"svWSF","\\/",[130,2454,2455],{"class":2412},"v-layout>",[130,2457,2409],{"class":271},[130,2459,2429],{"class":248},[130,2461,256],{"class":255},[130,2463,272],{"class":271},[130,2465,2466],{"class":140},"\u003C/v-row>",[130,2468,319],{"class":271},[130,2470,327],{"class":255},[130,2472,2473,2475,2477,2480,2482,2484,2487,2490,2492,2495,2498,2500,2503,2505,2508,2510,2512,2514,2516,2518,2520,2523,2525],{"class":132,"line":345},[130,2474,2406],{"class":255},[130,2476,2409],{"class":271},[130,2478,2479],{"class":2412},"\u003Cv-flex",[130,2481,2417],{"class":2416},[130,2483,2421],{"class":2420},[130,2485,2486],{"class":255},"([",[130,2488,2489],{"class":597},"^",[130,2491,1799],{"class":144},[130,2493,2494],{"class":255},"]",[130,2496,2497],{"class":2420},"*?",[130,2499,586],{"class":255},[130,2501,2502],{"class":2412},"xs",[130,2504,380],{"class":255},[130,2506,2507],{"class":2416},"\\d",[130,2509,2421],{"class":2420},[130,2511,586],{"class":255},[130,2513,2409],{"class":271},[130,2515,2429],{"class":248},[130,2517,256],{"class":255},[130,2519,272],{"class":271},[130,2521,2522],{"class":140},"\u003Cv-col $1cols=\"$2\"",[130,2524,319],{"class":271},[130,2526,327],{"class":255},[130,2528,2529,2531,2533,2535,2537,2539,2541,2543,2545,2547,2549,2551,2554,2556,2558,2560,2562,2564,2566,2568,2570,2573,2575],{"class":132,"line":363},[130,2530,2406],{"class":255},[130,2532,2409],{"class":271},[130,2534,2479],{"class":2412},[130,2536,2417],{"class":2416},[130,2538,2421],{"class":2420},[130,2540,2486],{"class":255},[130,2542,2489],{"class":597},[130,2544,1799],{"class":144},[130,2546,2494],{"class":255},[130,2548,2497],{"class":2420},[130,2550,586],{"class":255},[130,2552,2553],{"class":2412},"sm",[130,2555,380],{"class":255},[130,2557,2507],{"class":2416},[130,2559,2421],{"class":2420},[130,2561,586],{"class":255},[130,2563,2409],{"class":271},[130,2565,2429],{"class":248},[130,2567,256],{"class":255},[130,2569,272],{"class":271},[130,2571,2572],{"class":140},"\u003Cv-col $1sm=\"$2\"",[130,2574,319],{"class":271},[130,2576,327],{"class":255},[130,2578,2579,2581,2583,2585,2587,2589,2591,2593,2595,2597,2599,2601,2604,2606,2608,2610,2612,2614,2616,2618,2620,2623,2625],{"class":132,"line":398},[130,2580,2406],{"class":255},[130,2582,2409],{"class":271},[130,2584,2479],{"class":2412},[130,2586,2417],{"class":2416},[130,2588,2421],{"class":2420},[130,2590,2486],{"class":255},[130,2592,2489],{"class":597},[130,2594,1799],{"class":144},[130,2596,2494],{"class":255},[130,2598,2497],{"class":2420},[130,2600,586],{"class":255},[130,2602,2603],{"class":2412},"md",[130,2605,380],{"class":255},[130,2607,2507],{"class":2416},[130,2609,2421],{"class":2420},[130,2611,586],{"class":255},[130,2613,2409],{"class":271},[130,2615,2429],{"class":248},[130,2617,256],{"class":255},[130,2619,272],{"class":271},[130,2621,2622],{"class":140},"\u003Cv-col $1md=\"$2\"",[130,2624,319],{"class":271},[130,2626,327],{"class":255},[130,2628,2629,2631,2633,2635,2637,2639,2641,2643,2645,2647,2649,2651,2654,2656,2658,2660,2662,2664,2666,2668,2670,2673,2675],{"class":132,"line":404},[130,2630,2406],{"class":255},[130,2632,2409],{"class":271},[130,2634,2479],{"class":2412},[130,2636,2417],{"class":2416},[130,2638,2421],{"class":2420},[130,2640,2486],{"class":255},[130,2642,2489],{"class":597},[130,2644,1799],{"class":144},[130,2646,2494],{"class":255},[130,2648,2497],{"class":2420},[130,2650,586],{"class":255},[130,2652,2653],{"class":2412},"lg",[130,2655,380],{"class":255},[130,2657,2507],{"class":2416},[130,2659,2421],{"class":2420},[130,2661,586],{"class":255},[130,2663,2409],{"class":271},[130,2665,2429],{"class":248},[130,2667,256],{"class":255},[130,2669,272],{"class":271},[130,2671,2672],{"class":140},"\u003Cv-col $1lg=\"$2\"",[130,2674,319],{"class":271},[130,2676,327],{"class":255},[130,2678,2679,2681,2683,2685,2687,2689,2691,2693,2696,2698],{"class":132,"line":439},[130,2680,2406],{"class":255},[130,2682,2409],{"class":271},[130,2684,2479],{"class":2412},[130,2686,2409],{"class":271},[130,2688,2429],{"class":248},[130,2690,256],{"class":255},[130,2692,272],{"class":271},[130,2694,2695],{"class":140},"\u003Cv-col",[130,2697,319],{"class":271},[130,2699,327],{"class":255},[130,2701,2702,2704,2706,2708,2710,2713,2715,2717,2719,2721,2724,2726],{"class":132,"line":445},[130,2703,2406],{"class":255},[130,2705,2409],{"class":271},[130,2707,779],{"class":2412},[130,2709,2452],{"class":2451},[130,2711,2712],{"class":2412},"v-flex>",[130,2714,2409],{"class":271},[130,2716,2429],{"class":248},[130,2718,256],{"class":255},[130,2720,272],{"class":271},[130,2722,2723],{"class":140},"\u003C/v-col>",[130,2725,319],{"class":271},[130,2727,327],{"class":255},[130,2729,2730],{"class":132,"line":451},[130,2731,284],{"emptyLinePlaceholder":283},[130,2733,2734],{"class":132,"line":457},[130,2735,2736],{"class":242},"  // カード\n",[130,2738,2739,2741,2743,2745,2748,2751,2753,2755,2758,2760,2762,2764,2766,2769,2771],{"class":132,"line":465},[130,2740,2406],{"class":255},[130,2742,2409],{"class":271},[130,2744,2417],{"class":2416},[130,2746,2747],{"class":2412},"outlined",[130,2749,2750],{"class":255},"(?=[",[130,2752,2417],{"class":2416},[130,2754,1799],{"class":144},[130,2756,2757],{"class":255},"])",[130,2759,2409],{"class":271},[130,2761,2429],{"class":248},[130,2763,256],{"class":255},[130,2765,272],{"class":271},[130,2767,2768],{"class":140}," variant=\"outlined\"",[130,2770,319],{"class":271},[130,2772,327],{"class":255},[130,2774,2775,2777,2779,2781,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802,2804],{"class":132,"line":473},[130,2776,2406],{"class":255},[130,2778,2409],{"class":271},[130,2780,2417],{"class":2416},[130,2782,2783],{"class":2412},"flat",[130,2785,2750],{"class":255},[130,2787,2417],{"class":2416},[130,2789,1799],{"class":144},[130,2791,2757],{"class":255},[130,2793,2409],{"class":271},[130,2795,2429],{"class":248},[130,2797,256],{"class":255},[130,2799,272],{"class":271},[130,2801,902],{"class":140},[130,2803,319],{"class":271},[130,2805,327],{"class":255},[130,2807,2808],{"class":132,"line":481},[130,2809,284],{"emptyLinePlaceholder":283},[130,2811,2812],{"class":132,"line":490},[130,2813,2814],{"class":242},"  // ルーター\n",[130,2816,2817,2819,2821,2824,2826,2828,2830,2832,2835,2837],{"class":132,"line":496},[130,2818,2406],{"class":255},[130,2820,2409],{"class":271},[130,2822,2823],{"class":2412},"\u003Cnuxt-link",[130,2825,2409],{"class":271},[130,2827,2429],{"class":248},[130,2829,256],{"class":255},[130,2831,272],{"class":271},[130,2833,2834],{"class":140},"\u003CNuxtLink",[130,2836,319],{"class":271},[130,2838,327],{"class":255},[130,2840,2841,2843,2845,2847,2849,2852,2854,2856,2858,2860,2863,2865],{"class":132,"line":501},[130,2842,2406],{"class":255},[130,2844,2409],{"class":271},[130,2846,779],{"class":2412},[130,2848,2452],{"class":2451},[130,2850,2851],{"class":2412},"nuxt-link>",[130,2853,2409],{"class":271},[130,2855,2429],{"class":248},[130,2857,256],{"class":255},[130,2859,272],{"class":271},[130,2861,2862],{"class":140},"\u003C/NuxtLink>",[130,2864,319],{"class":271},[130,2866,327],{"class":255},[130,2868,2869],{"class":132,"line":506},[130,2870,284],{"emptyLinePlaceholder":283},[130,2872,2873],{"class":132,"line":1309},[130,2874,2875],{"class":242},"  // レイアウト\n",[130,2877,2878,2880,2882,2885,2887,2890,2892,2894,2896,2898,2900,2902,2905,2907],{"class":132,"line":1972},[130,2879,2406],{"class":255},[130,2881,2409],{"class":271},[130,2883,2884],{"class":2412},"\u003Cnuxt",[130,2886,2417],{"class":2416},[130,2888,2889],{"class":2420},"*",[130,2891,2452],{"class":2451},[130,2893,1799],{"class":2412},[130,2895,2409],{"class":271},[130,2897,2429],{"class":248},[130,2899,256],{"class":255},[130,2901,272],{"class":271},[130,2903,2904],{"class":140},"\u003Cslot />",[130,2906,319],{"class":271},[130,2908,327],{"class":255},[130,2910,2911],{"class":132,"line":1977},[130,2912,2913],{"class":255},"]\n",[130,2915,2916],{"class":132,"line":1982},[130,2917,284],{"emptyLinePlaceholder":283},[130,2919,2920,2923,2926,2929,2931,2934,2936],{"class":132,"line":1992},[130,2921,2922],{"class":597},"async",[130,2924,2925],{"class":597}," function",[130,2927,2928],{"class":166}," migrateFile",[130,2930,380],{"class":255},[130,2932,2933],{"class":252},"filePath",[130,2935,586],{"class":255},[130,2937,592],{"class":255},[130,2939,2940,2943,2946,2948,2950,2952,2955,2957,2959,2961,2963,2966,2968],{"class":132,"line":2002},[130,2941,2942],{"class":597},"  let",[130,2944,2945],{"class":252}," content",[130,2947,603],{"class":255},[130,2949,2335],{"class":252},[130,2951,369],{"class":255},[130,2953,2954],{"class":166},"readFileSync",[130,2956,380],{"class":255},[130,2958,2933],{"class":252},[130,2960,256],{"class":255},[130,2962,272],{"class":271},[130,2964,2965],{"class":140},"utf-8",[130,2967,319],{"class":271},[130,2969,661],{"class":255},[130,2971,2972,2974,2977,2979],{"class":132,"line":2008},[130,2973,2942],{"class":597},[130,2975,2976],{"class":252}," modified",[130,2978,603],{"class":255},[130,2980,2981],{"class":248}," false\n",[130,2983,2984],{"class":132,"line":2013},[130,2985,284],{"emptyLinePlaceholder":283},[130,2987,2988,2991,2993,2995,2997,3000,3002,3005,3007,3010,3012,3014],{"class":132,"line":2018},[130,2989,2990],{"class":248},"  for",[130,2992,1105],{"class":255},[130,2994,2388],{"class":597},[130,2996,707],{"class":255},[130,2998,2999],{"class":252},"pattern",[130,3001,256],{"class":255},[130,3003,3004],{"class":252}," replacement",[130,3006,2494],{"class":255},[130,3008,3009],{"class":597}," of",[130,3011,2391],{"class":252},[130,3013,586],{"class":255},[130,3015,592],{"class":255},[130,3017,3018,3021,3023,3025,3027,3030,3032,3035,3038],{"class":132,"line":2023},[130,3019,3020],{"class":248},"    if",[130,3022,1105],{"class":255},[130,3024,2999],{"class":252},[130,3026,369],{"class":255},[130,3028,3029],{"class":166},"test",[130,3031,380],{"class":255},[130,3033,3034],{"class":252},"content",[130,3036,3037],{"class":255},"))",[130,3039,592],{"class":255},[130,3041,3043,3046,3048,3050,3052,3055,3057,3059,3061,3063],{"class":132,"line":3042},34,[130,3044,3045],{"class":252},"      content",[130,3047,603],{"class":255},[130,3049,2945],{"class":252},[130,3051,369],{"class":255},[130,3053,3054],{"class":166},"replace",[130,3056,380],{"class":255},[130,3058,2999],{"class":252},[130,3060,256],{"class":255},[130,3062,3004],{"class":252},[130,3064,661],{"class":255},[130,3066,3068,3071,3073],{"class":132,"line":3067},35,[130,3069,3070],{"class":252},"      modified",[130,3072,603],{"class":255},[130,3074,1236],{"class":248},[130,3076,3078],{"class":132,"line":3077},36,[130,3079,1929],{"class":255},[130,3081,3083],{"class":132,"line":3082},37,[130,3084,1478],{"class":255},[130,3086,3088],{"class":132,"line":3087},38,[130,3089,284],{"emptyLinePlaceholder":283},[130,3091,3093,3096,3098,3101,3103],{"class":132,"line":3092},39,[130,3094,3095],{"class":248},"  if",[130,3097,1105],{"class":255},[130,3099,3100],{"class":252},"modified",[130,3102,586],{"class":255},[130,3104,592],{"class":255},[130,3106,3108,3111,3113,3116,3118,3120,3122,3124,3126,3128,3130,3132],{"class":132,"line":3107},40,[130,3109,3110],{"class":252},"    fs",[130,3112,369],{"class":255},[130,3114,3115],{"class":166},"writeFileSync",[130,3117,380],{"class":255},[130,3119,2933],{"class":252},[130,3121,256],{"class":255},[130,3123,2945],{"class":252},[130,3125,256],{"class":255},[130,3127,272],{"class":271},[130,3129,2965],{"class":140},[130,3131,319],{"class":271},[130,3133,661],{"class":255},[130,3135,3137,3140,3142,3145,3147,3150,3153,3156,3158,3161,3163],{"class":132,"line":3136},41,[130,3138,3139],{"class":252},"    console",[130,3141,369],{"class":255},[130,3143,3144],{"class":166},"log",[130,3146,380],{"class":255},[130,3148,3149],{"class":271},"`",[130,3151,3152],{"class":140},"Migrated: ",[130,3154,3155],{"class":248},"${",[130,3157,2933],{"class":140},[130,3159,3160],{"class":248},"}",[130,3162,3149],{"class":271},[130,3164,661],{"class":255},[130,3166,3168],{"class":132,"line":3167},42,[130,3169,1478],{"class":255},[130,3171,3173],{"class":132,"line":3172},43,[130,3174,1171],{"class":255},[130,3176,3178],{"class":132,"line":3177},44,[130,3179,284],{"emptyLinePlaceholder":283},[130,3181,3183,3185,3187,3190,3192],{"class":132,"line":3182},45,[130,3184,2922],{"class":597},[130,3186,2925],{"class":597},[130,3188,3189],{"class":166}," main",[130,3191,1492],{"class":255},[130,3193,592],{"class":255},[130,3195,3197,3200,3203,3205,3208,3210,3212,3214,3217,3219,3221,3223,3226,3228,3230,3233,3235],{"class":132,"line":3196},46,[130,3198,3199],{"class":597},"  const",[130,3201,3202],{"class":252}," files",[130,3204,603],{"class":255},[130,3206,3207],{"class":248}," await",[130,3209,2368],{"class":166},[130,3211,380],{"class":255},[130,3213,319],{"class":271},[130,3215,3216],{"class":140},"**/*.vue",[130,3218,319],{"class":271},[130,3220,256],{"class":255},[130,3222,259],{"class":255},[130,3224,3225],{"class":136}," ignore",[130,3227,704],{"class":255},[130,3229,272],{"class":271},[130,3231,3232],{"class":140},"node_modules/**",[130,3234,319],{"class":271},[130,3236,3237],{"class":255}," })\n",[130,3239,3241,3243,3245,3247,3250,3252,3254,3256],{"class":132,"line":3240},47,[130,3242,2990],{"class":248},[130,3244,1105],{"class":255},[130,3246,2388],{"class":597},[130,3248,3249],{"class":252}," file",[130,3251,3009],{"class":597},[130,3253,3202],{"class":252},[130,3255,586],{"class":255},[130,3257,592],{"class":255},[130,3259,3261,3264,3266,3268,3271],{"class":132,"line":3260},48,[130,3262,3263],{"class":248},"    await",[130,3265,2928],{"class":166},[130,3267,380],{"class":255},[130,3269,3270],{"class":252},"file",[130,3272,661],{"class":255},[130,3274,3276],{"class":132,"line":3275},49,[130,3277,1478],{"class":255},[130,3279,3281],{"class":132,"line":3280},50,[130,3282,1171],{"class":255},[130,3284,3286],{"class":132,"line":3285},51,[130,3287,284],{"emptyLinePlaceholder":283},[130,3289,3291,3294],{"class":132,"line":3290},52,[130,3292,3293],{"class":166},"main",[130,3295,3296],{"class":255},"()\n",[115,3298,3299],{"id":3299},"使用方法",[120,3301,3303],{"className":122,"code":3302,"language":124,"meta":125,"style":125},"cd eurekapu-nuxt3\nnode scripts/migrate-vuetify.mjs\n",[127,3304,3305,3311],{"__ignoreMap":125},[130,3306,3307,3309],{"class":132,"line":133},[130,3308,137],{"class":136},[130,3310,176],{"class":140},[130,3312,3313,3316],{"class":132,"line":163},[130,3314,3315],{"class":166},"node",[130,3317,3318],{"class":140}," scripts/migrate-vuetify.mjs\n",[108,3320],{},[15,3322,3323],{"id":3323},"チェックリスト",[115,3325,3327],{"id":3326},"phase-0-準備","Phase 0: 準備",[728,3329,3332,3341,3347,3353,3359],{"className":3330},[3331],"contains-task-list",[731,3333,3336,3340],{"className":3334},[3335],"task-list-item",[3337,3338],"input",{"disabled":283,"type":3339},"checkbox"," 新規リポジトリ作成",[731,3342,3344,3346],{"className":3343},[3335],[3337,3345],{"disabled":283,"type":3339}," Nuxt 3 初期設定",[731,3348,3350,3352],{"className":3349},[3335],[3337,3351],{"disabled":283,"type":3339}," Vuetify 3 インストール・設定",[731,3354,3356,3358],{"className":3355},[3335],[3337,3357],{"disabled":283,"type":3339}," Pinia インストール・設定",[731,3360,3362,3364],{"className":3361},[3335],[3337,3363],{"disabled":283,"type":3339}," 基本レイアウト動作確認",[115,3366,3368],{"id":3367},"phase-1-コアコンポーネント","Phase 1: コアコンポーネント",[728,3370,3372,3378,3384,3390,3396],{"className":3371},[3331],[731,3373,3375,3377],{"className":3374},[3335],[3337,3376],{"disabled":283,"type":3339}," layouts/default.vue 移行",[731,3379,3381,3383],{"className":3380},[3335],[3337,3382],{"disabled":283,"type":3339}," components/Menu.vue 移行",[731,3385,3387,3389],{"className":3386},[3335],[3337,3388],{"disabled":283,"type":3339}," components/List.vue 移行",[731,3391,3393,3395],{"className":3392},[3335],[3337,3394],{"disabled":283,"type":3339}," components/Breadcrumbs.vue 移行",[731,3397,3399,3401],{"className":3398},[3335],[3337,3400],{"disabled":283,"type":3339}," BaseComponents/*.vue 移行",[115,3403,1014],{"id":3404},"phase-2-状態管理-1",[728,3406,3408,3414],{"className":3407},[3331],[731,3409,3411,3413],{"className":3410},[3335],[3337,3412],{"disabled":283,"type":3339}," Pinia store 作成",[731,3415,3417,3419],{"className":3416},[3335],[3337,3418],{"disabled":283,"type":3339}," persistedstate 移行",[115,3421,3423],{"id":3422},"phase-3-ページ移行","Phase 3: ページ移行",[728,3425,3427,3433,3439,3445,3451,3457],{"className":3426},[3331],[731,3428,3430,3432],{"className":3429},[3335],[3337,3431],{"disabled":283,"type":3339}," financial-statements/ (42ファイル)",[731,3434,3436,3438],{"className":3435},[3335],[3337,3437],{"disabled":283,"type":3339}," intro-to-accounting/",[731,3440,3442,3444],{"className":3441},[3335],[3337,3443],{"disabled":283,"type":3339}," excel/",[731,3446,3448,3450],{"className":3447},[3335],[3337,3449],{"disabled":283,"type":3339}," excel-shortcuts/",[731,3452,3454,3456],{"className":3453},[3335],[3337,3455],{"disabled":283,"type":3339}," boki3/",[731,3458,3460,3462],{"className":3459},[3335],[3337,3461],{"disabled":283,"type":3339}," その他",[108,3464],{},[15,3466,3467],{"id":3467},"参考リンク",[728,3469,3470,3479,3486],{},[731,3471,3472],{},[3473,3474,3478],"a",{"href":3475,"rel":3476},"https://nuxt.com/docs/migration/overview",[3477],"nofollow","Nuxt 3 Migration Guide",[731,3480,3481],{},[3473,3482,3485],{"href":3483,"rel":3484},"https://vuetifyjs.com/en/getting-started/upgrade-guide/",[3477],"Vuetify 3 Migration Guide",[731,3487,3488],{},[3473,3489,3492],{"href":3490,"rel":3491},"https://pinia.vuejs.org/",[3477],"Pinia Documentation",[108,3494],{},[15,3496,3497],{"id":3497},"注意事項",[3499,3500,3501,3507,3513,3519],"ol",{},[731,3502,3503,3506],{},[103,3504,3505],{},"並行運用期間",": 移行中は両プロジェクトを並行運用し、セクション単位でリダイレクト設定",[731,3508,3509,3512],{},[103,3510,3511],{},"テスト",": 各フェーズ完了後に手動テスト必須",[731,3514,3515,3518],{},[103,3516,3517],{},"バックアップ",": 移行前に必ずgit commitでスナップショット作成",[731,3520,3521,3524],{},[103,3522,3523],{},"段階的リリース",": 完成したセクションから順次本番反映",[108,3526],{},[15,3528,3529],{"id":3529},"関連情報",[115,3531,3532],{"id":3532},"元プロジェクト",[728,3534,3535,3541],{},[731,3536,3537,3538],{},"リポジトリ: ",[127,3539,3540],{},"C:\\Users\\numbe\\Git_repo\\cockpit-nuxt-vuetify",[731,3542,3543,3544],{},"本番URL: ",[3473,3545,3546],{"href":3546,"rel":3547},"https://app.eurekapu.com",[3477],[115,3549,3550],{"id":3550},"プロジェクト統計",[728,3552,3553,3556,3559,3562],{},[731,3554,3555],{},"Vueファイル数: 1052",[731,3557,3558],{},"ページ数: ~500",[731,3560,3561],{},"コンポーネント数: ~100",[731,3563,3564],{},"データファイル: 35個 (JSON/JS)",[3566,3567,3568],"style",{},"html pre.shiki code .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}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 .sxvE3, html code.shiki .sxvE3{--shiki-default:#A0ADA0;--shiki-dark:#A0ADA0}html pre.shiki code .sHkkW, html code.shiki .sHkkW{--shiki-default:#1E754F;--shiki-dark:#1E754F}html pre.shiki code .s4oTP, html code.shiki .s4oTP{--shiki-default:#B07D48;--shiki-dark:#B07D48}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .sG7-3, html code.shiki .sG7-3{--shiki-default:#393A34;--shiki-dark:#393A34}html pre.shiki code .sSkh3, html code.shiki .sSkh3{--shiki-default:#2E8F82;--shiki-dark:#2E8F82}html pre.shiki code .sLkVR, html code.shiki .sLkVR{--shiki-default:#AB5E3F;--shiki-dark:#AB5E3F}html pre.shiki code .she3A, html code.shiki .she3A{--shiki-default:#5A6AA6;--shiki-dark:#5A6AA6}html pre.shiki code .sM54T, html code.shiki .sM54T{--shiki-default:#2F798A;--shiki-dark:#2F798A}html pre.shiki code .svWSF, html code.shiki .svWSF{--shiki-default:#BDA437;--shiki-dark:#BDA437}",{"title":125,"searchDepth":163,"depth":163,"links":3570},[3571,3572,3573,3580,3584,3587,3591,3595,3601,3602,3603],{"id":17,"depth":163,"text":17},{"id":98,"depth":163,"text":98},{"id":112,"depth":163,"text":113,"children":3574},[3575,3576,3577,3578,3579],{"id":117,"depth":179,"text":118},{"id":195,"depth":179,"text":196},{"id":229,"depth":179,"text":230},{"id":512,"depth":179,"text":513},{"id":668,"depth":179,"text":669},{"id":721,"depth":163,"text":722,"children":3581},[3582,3583],{"id":725,"depth":179,"text":726},{"id":758,"depth":179,"text":758},{"id":1013,"depth":163,"text":1014,"children":3585},[3586],{"id":1017,"depth":179,"text":1018},{"id":1562,"depth":163,"text":1563,"children":3588},[3589,3590],{"id":1566,"depth":179,"text":1566},{"id":1711,"depth":179,"text":1711},{"id":2319,"depth":163,"text":2319,"children":3592},[3593,3594],{"id":2322,"depth":179,"text":2323},{"id":3299,"depth":179,"text":3299},{"id":3323,"depth":163,"text":3323,"children":3596},[3597,3598,3599,3600],{"id":3326,"depth":179,"text":3327},{"id":3367,"depth":179,"text":3368},{"id":3404,"depth":179,"text":1014},{"id":3422,"depth":179,"text":3423},{"id":3467,"depth":163,"text":3467},{"id":3497,"depth":163,"text":3497},{"id":3529,"depth":163,"text":3529,"children":3604},[3605,3606],{"id":3532,"depth":179,"text":3532},{"id":3550,"depth":179,"text":3550},null,"cockpit-nuxt-vuetifyプロジェクトをNuxt 3 + Vuetify 3へ段階的に移行するための詳細計画",{},"/eurekapu-nuxt3-migration-plan",false,"2025-12-18T00:00:00.000Z",{"title":5,"description":3608},"2025-12/2025-12-18/eurekapu-nuxt3-migration-plan",[357,322,3616,3617],"migration","vue3","tVYIZny0lknrcHJNq6Ieir8agGdDQBuZj8RbtZMHsTU",[],[3621,3625,3628,3632,3636],{"title":3622,"path":3623,"publishedAt":3624},"2026年2月18日の開発日記 - 音アーカイブの方向転換と大量実装","/2026-02-18-diary","2026-02-18T00:00:00.000Z",{"title":3626,"path":3627,"publishedAt":3624},"ステレオサウンドテストページをVue 3/Nuxtで実装 - Web Audio APIによる左右チャンネル出し分け","/stereo-wave-canvas-vue-2026-02-18",{"title":3629,"path":3630,"publishedAt":3631},"Eurekapu Nuxt 4移行プロジェクト始動 - Vue 2からの脱却とScoped CSS方式への転換","/eurekapu-nuxt4-migration-2026-02-15","2026-02-15T00:00:00.000Z",{"title":3633,"path":3634,"publishedAt":3635},"WordPressブログをNuxt 3 + Cloudflare Pagesに移行した記録","/pon-blog-wordpress-to-nuxt3-migration-2026-02-11","2026-02-11T00:00:00.000Z",{"title":3637,"path":3638,"publishedAt":3639},"2026年1月12日の開発日記 - Nuxt 4移行とDBリファクタリング","/2026-01-12-diary","2026-01-12T00:00:00.000Z","https://log.eurekapu.com/og/blog/eurekapu-nuxt3-migration-plan.png?v=2025-12-18T00%3A00%3A00.000Z&title=Eurekapu%E7%A7%BB%E8%A1%8C%E8%A8%88%E7%94%BB%3A%20Nuxt%202%20%E2%86%92%20Nuxt%203%20%2B%20Vuetify%203&author=Kei%20Komatsu&sig=ac83d9a23a82462c",1785654680633]