[{"data":1,"prerenderedAt":1221},["ShallowReactive",2],{"content-/volta-to-mise-migration-complete":3,"all-pages-for-dir":1219,"og-image-/volta-to-mise-migration-complete":1220},{"id":4,"title":5,"body":6,"category":1199,"description":1200,"extension":1201,"meta":1202,"navigation":239,"path":1203,"project_name":1204,"published":1205,"publishedAt":1206,"seo":1207,"stem":1208,"tags":1209,"todo":1216,"unpublished":1205,"updatedAt":1217,"__hash__":1218},"pages/2026-04/2026-04-23/volta-to-mise-migration-complete.md","Volta から mise への移行完了 - Claude Code を入れ直すまでに詰まった5つの落とし穴",{"type":7,"value":8,"toc":1183},"minimark",[9,13,23,26,29,34,52,54,66,69,85,88,96,102,124,127,129,133,139,145,148,155,161,168,171,196,199,201,205,208,214,217,220,305,308,310,314,317,337,344,354,357,408,422,437,440,442,450,460,466,472,475,508,511,540,543,546,574,577,579,587,596,602,605,614,620,623,626,635,775,786,789,817,823,826,850,853,855,858,937,940,955,957,960,1062,1064,1067,1070,1137,1140,1148,1151,1159,1161,1164,1179],[10,11,5],"h1",{"id":12},"volta-から-mise-への移行完了-claude-code-を入れ直すまでに詰まった5つの落とし穴",[14,15,16,17,22],"p",{},"2026年3月に ",[18,19,21],"a",{"href":20},"/volta-to-mise-migration","Volta から mise へ移行する方針"," を立てていたが、Volta側で不具合が出たのを機に今日ようやく実行した。Node.js の管理を mise に切り替え、Claude Code も現行の環境で動く形で入れ直すところまでやった。",[14,24,25],{},"結論から言うと、単純な「Volta アンインストール → mise インストール」では済まなかった。PATH の優先順位、Windows の環境変数画面が保存を拒否する問題、npm 版 Claude Code が中身空っぽだった件など、詰まりどころが5つあったので記録に残す。",[27,28],"hr",{},[30,31,33],"h2",{"id":32},"_0-今回のゴール","0. 今回のゴール",[35,36,37,41,49],"ul",{},[38,39,40],"li",{},"Node.js 管理を Volta から mise に切り替える",[38,42,43,44,48],{},"Volta を PATH から外し、",[45,46,47],"code",{},"node"," コマンドは mise の shims を見るようにする",[38,50,51],{},"Claude Code を現環境で動く形で入れ直す（npm 版ではなく公式インストーラー版）",[27,53],{},[30,55,57,58,61,62,65],{"id":56},"_1-powershell-で-head-や-which-が動かない","1. PowerShell で ",[45,59,60],{},"head"," や ",[45,63,64],{},"which"," が動かない",[14,67,68],{},"最初に mise の状態を見ようとして、いつものノリで打った。",[70,71,76],"pre",{"className":72,"code":73,"language":74,"meta":75,"style":75},"language-powershell shiki shiki-themes vitesse-light vitesse-light","mise doctor 2>&1 | head -5\n","powershell","",[45,77,78],{"__ignoreMap":75},[79,80,83],"span",{"class":81,"line":82},"line",1,[79,84,73],{},[14,86,87],{},"返ってきたのはエラー。",[70,89,94],{"className":90,"code":92,"language":93},[91],"language-text","head: The term 'head' is not recognized as a name of a cmdlet,\nfunction, script file, or executable program.\n","text",[45,95,92],{"__ignoreMap":75},[14,97,98,101],{},[45,99,100],{},"which node"," も同じ理由で弾かれた。PowerShell に Linux/macOS のコマンドをそのまま渡していたのが原因。書き換えると動いた。",[70,103,105],{"className":72,"code":104,"language":74,"meta":75,"style":75},"mise doctor 2>&1 | Select-Object -First 5\nGet-Command node\n(Get-Command node).Source\n",[45,106,107,112,118],{"__ignoreMap":75},[79,108,109],{"class":81,"line":82},[79,110,111],{},"mise doctor 2>&1 | Select-Object -First 5\n",[79,113,115],{"class":81,"line":114},2,[79,116,117],{},"Get-Command node\n",[79,119,121],{"class":81,"line":120},3,[79,122,123],{},"(Get-Command node).Source\n",[14,125,126],{},"単純な話だが、頭を PowerShell モードに切り替えないとここで最初の10分を溶かす。",[27,128],{},[30,130,132],{"id":131},"_2-mise-は動いていたがpath-で-volta-が先に解決されていた","2. mise は動いていたが、PATH で Volta が先に解決されていた",[14,134,135,138],{},[45,136,137],{},"mise doctor"," の出力はこう返ってきた。",[70,140,143],{"className":141,"code":142,"language":93},[91],"version: 2026.4.19 windows-x64 (2026-04-23)\nshims_on_path: yes\nself_update_available: yes\n",[45,144,142],{"__ignoreMap":75},[14,146,147],{},"mise 自体は入っていて、shims も PATH に乗っている。ここまでは正常。",[14,149,150,151,154],{},"ところが ",[45,152,153],{},"Get-Command node"," を叩くと、",[70,156,159],{"className":157,"code":158,"language":93},[91],"CommandType     Name       Version    Source\n-----------     ----       -------    ------\nApplication     node.exe   0.0.0.0    C:\\Program Files\\Volta\\...\n",[45,160,158],{"__ignoreMap":75},[14,162,163,164,167],{},"node の実体が Volta を指していた。",[45,165,166],{},"Get-Command node -All"," で全候補を並べると、Volta と mise の両方が登録されていて、PATH の並び順で先頭にあった Volta が勝っていた。",[14,169,170],{},"一時的に mise を優先させて確認した。",[70,172,174],{"className":72,"code":173,"language":74,"meta":75,"style":75},"$env:Path = \"$env:USERPROFILE\\AppData\\Local\\mise\\shims;$env:Path\"\nGet-Command node\nnode -v\n# v22.22.2\n",[45,175,176,181,185,190],{"__ignoreMap":75},[79,177,178],{"class":81,"line":82},[79,179,180],{},"$env:Path = \"$env:USERPROFILE\\AppData\\Local\\mise\\shims;$env:Path\"\n",[79,182,183],{"class":81,"line":114},[79,184,117],{},[79,186,187],{"class":81,"line":120},[79,188,189],{},"node -v\n",[79,191,193],{"class":81,"line":192},4,[79,194,195],{},"# v22.22.2\n",[14,197,198],{},"mise 側の Node（v22.22.2）に切り替わった。原因は mise ではなく PATH の並び順だと確定した。",[27,200],{},[30,202,204],{"id":203},"_3-windows-の環境変数画面が長すぎて保存できないと言い出した","3. Windows の環境変数画面が「長すぎて保存できない」と言い出した",[14,206,207],{},"環境変数を恒久的に直すため、Windows の環境変数編集画面を開いた。ユーザー環境変数の Path を整理しようとしたところで、保存時にこれが出た。",[70,209,212],{"className":210,"code":211,"language":93},[91],"この環境変数は長すぎます。\nこのダイアログ ボックスでは、2047 文字より長い値は設定できません。\n",[45,213,211],{"__ignoreMap":75},[14,215,216],{},"環境変数画面には 2047 文字の制限がある。Path が長く育ちすぎたユーザーにはよくある壁。",[14,218,219],{},"GUI を諦めて、PowerShell から直接ユーザー環境変数を書き換えることにした。",[70,221,223],{"className":72,"code":222,"language":74,"meta":75,"style":75},"# 現在のユーザー環境変数 Path を取得\n$userPath = [Environment]::GetEnvironmentVariable(\"Path\", \"User\")\n\n# Volta 関連を除外し、重複も落とす\n$newPath = ($userPath -split ';' |\n  Where-Object {\n    $_ -and\n    $_ -ne \"C:\\Program Files\\Volta\\\" -and\n    $_ -ne \"C:\\Program Files\\Volta\"\n  } |\n  Select-Object -Unique) -join ';'\n\n# 保存\n[Environment]::SetEnvironmentVariable(\"Path\", $newPath, \"User\")\n",[45,224,225,230,235,241,246,252,258,264,270,276,282,288,293,299],{"__ignoreMap":75},[79,226,227],{"class":81,"line":82},[79,228,229],{},"# 現在のユーザー環境変数 Path を取得\n",[79,231,232],{"class":81,"line":114},[79,233,234],{},"$userPath = [Environment]::GetEnvironmentVariable(\"Path\", \"User\")\n",[79,236,237],{"class":81,"line":120},[79,238,240],{"emptyLinePlaceholder":239},true,"\n",[79,242,243],{"class":81,"line":192},[79,244,245],{},"# Volta 関連を除外し、重複も落とす\n",[79,247,249],{"class":81,"line":248},5,[79,250,251],{},"$newPath = ($userPath -split ';' |\n",[79,253,255],{"class":81,"line":254},6,[79,256,257],{},"  Where-Object {\n",[79,259,261],{"class":81,"line":260},7,[79,262,263],{},"    $_ -and\n",[79,265,267],{"class":81,"line":266},8,[79,268,269],{},"    $_ -ne \"C:\\Program Files\\Volta\\\" -and\n",[79,271,273],{"class":81,"line":272},9,[79,274,275],{},"    $_ -ne \"C:\\Program Files\\Volta\"\n",[79,277,279],{"class":81,"line":278},10,[79,280,281],{},"  } |\n",[79,283,285],{"class":81,"line":284},11,[79,286,287],{},"  Select-Object -Unique) -join ';'\n",[79,289,291],{"class":81,"line":290},12,[79,292,240],{"emptyLinePlaceholder":239},[79,294,296],{"class":81,"line":295},13,[79,297,298],{},"# 保存\n",[79,300,302],{"class":81,"line":301},14,[79,303,304],{},"[Environment]::SetEnvironmentVariable(\"Path\", $newPath, \"User\")\n",[14,306,307],{},"この方法なら 2047 文字制限に引っかからない。",[27,309],{},[30,311,313],{"id":312},"_4-ユーザー環境変数を消したのにまだ-volta-の-node-が先に拾われた","4. ユーザー環境変数を消したのに、まだ Volta の node が先に拾われた",[14,315,316],{},"新しくターミナルを開き直して再確認した。",[70,318,320],{"className":72,"code":319,"language":74,"meta":75,"style":75},"Get-Command node -All\n# Application  node.exe  0.0.0.0  C:\\Program Files\\Volta\\...\n# Application  node.exe  0.0.0.0  C:\\Users\\numbe\\AppData\\...\n",[45,321,322,327,332],{"__ignoreMap":75},[79,323,324],{"class":81,"line":82},[79,325,326],{},"Get-Command node -All\n",[79,328,329],{"class":81,"line":114},[79,330,331],{},"# Application  node.exe  0.0.0.0  C:\\Program Files\\Volta\\...\n",[79,333,334],{"class":81,"line":120},[79,335,336],{},"# Application  node.exe  0.0.0.0  C:\\Users\\numbe\\AppData\\...\n",[14,338,339,340,343],{},"まだ Volta が先頭にいる。",[45,341,342],{},"node -v"," も v22.22.0（Volta 側）を返してくる。",[14,345,346,347,349,350,353],{},"管理者 PowerShell を開くと mise が先頭になり ",[45,348,342],{}," も v22.22.2 を返したので、残っているのはシステム環境変数側ではなく、ユーザー環境変数のもう1つの Volta エントリだった。",[45,351,352],{},"$env:USERPROFILE\\AppData\\Local\\Volta\\bin"," が生き残っていた。",[14,355,356],{},"これも PowerShell から削った。",[70,358,360],{"className":72,"code":359,"language":74,"meta":75,"style":75},"$userPath = [Environment]::GetEnvironmentVariable(\"Path\", \"User\")\n\n$newPath = ($userPath -split ';' |\n  Where-Object {\n    $_ -and\n    $_ -ne \"$env:USERPROFILE\\AppData\\Local\\Volta\\bin\" -and\n    $_ -ne \"$env:USERPROFILE\\AppData\\Local\\Volta\\bin\\\"\n  } |\n  Select-Object -Unique) -join ';'\n\n[Environment]::SetEnvironmentVariable(\"Path\", $newPath, \"User\")\n",[45,361,362,366,370,374,378,382,387,392,396,400,404],{"__ignoreMap":75},[79,363,364],{"class":81,"line":82},[79,365,234],{},[79,367,368],{"class":81,"line":114},[79,369,240],{"emptyLinePlaceholder":239},[79,371,372],{"class":81,"line":120},[79,373,251],{},[79,375,376],{"class":81,"line":192},[79,377,257],{},[79,379,380],{"class":81,"line":248},[79,381,263],{},[79,383,384],{"class":81,"line":254},[79,385,386],{},"    $_ -ne \"$env:USERPROFILE\\AppData\\Local\\Volta\\bin\" -and\n",[79,388,389],{"class":81,"line":260},[79,390,391],{},"    $_ -ne \"$env:USERPROFILE\\AppData\\Local\\Volta\\bin\\\"\n",[79,393,394],{"class":81,"line":266},[79,395,281],{},[79,397,398],{"class":81,"line":272},[79,399,287],{},[79,401,402],{"class":81,"line":278},[79,403,240],{"emptyLinePlaceholder":239},[79,405,406],{"class":81,"line":284},[79,407,304],{},[14,409,410,411,414,415,418,419,421],{},"ここで落とし穴がもう1つ。削除直後の PowerShell セッションで ",[45,412,413],{},"$env:Path"," を見ると、まだ Volta が残っているように見えた。",[45,416,417],{},"[Environment]::SetEnvironmentVariable(...)"," は保存済みのレジストリ側を書き換えるだけで、起動中のプロセスの ",[45,420,413],{}," は書き換えない。保存済みの方を直接見ると、",[70,423,425],{"className":72,"code":424,"language":74,"meta":75,"style":75},"[Environment]::GetEnvironmentVariable(\"Path\", \"User\") -split ';' | Select-String \"Volta|mise\"\n# C:\\Users\\numbe\\AppData\\Local\\mise\\shims\n",[45,426,427,432],{"__ignoreMap":75},[79,428,429],{"class":81,"line":82},[79,430,431],{},"[Environment]::GetEnvironmentVariable(\"Path\", \"User\") -split ';' | Select-String \"Volta|mise\"\n",[79,433,434],{"class":81,"line":114},[79,435,436],{},"# C:\\Users\\numbe\\AppData\\Local\\mise\\shims\n",[14,438,439],{},"消えていた。ターミナルを開き直せば反映される。",[27,441],{},[30,443,445,446,449],{"id":444},"_5-node-は切り替わったのに-claude-コマンドが消えた","5. Node は切り替わったのに ",[45,447,448],{},"claude"," コマンドが消えた",[14,451,452,455,456,459],{},[45,453,454],{},"cd eurekapu-nuxt4"," して ",[45,457,458],{},"claude --resume"," を叩いたら、",[70,461,464],{"className":462,"code":463,"language":93},[91],"claude: The term 'claude' is not recognized as a name of a cmdlet...\n",[45,465,463],{"__ignoreMap":75},[14,467,468,469,471],{},"これで気付いた。以前使っていた ",[45,470,448],{}," は Volta の npm global 領域に入っていた。Volta を PATH から外した瞬間、そこに入っていた Claude Code も一緒に見えなくなった。",[14,473,474],{},"mise 側の Node と npm で入れ直せばいい、と考えて動いた。",[70,476,478],{"className":72,"code":477,"language":74,"meta":75,"style":75},"Get-Command node\n# C:\\Users\\numbe\\AppData\\Local\\mise\\...  ← mise側\nGet-Command npm\n# C:\\Users\\numbe\\AppData\\Local\\mise\\...  ← mise側\nnpm prefix -g\n# C:\\Users\\numbe\\AppData\\Local\\mise\\installs\\node\\22.22.2\n",[45,479,480,484,489,494,498,503],{"__ignoreMap":75},[79,481,482],{"class":81,"line":82},[79,483,117],{},[79,485,486],{"class":81,"line":114},[79,487,488],{},"# C:\\Users\\numbe\\AppData\\Local\\mise\\...  ← mise側\n",[79,490,491],{"class":81,"line":120},[79,492,493],{},"Get-Command npm\n",[79,495,496],{"class":81,"line":192},[79,497,488],{},[79,499,500],{"class":81,"line":248},[79,501,502],{},"npm prefix -g\n",[79,504,505],{"class":81,"line":254},[79,506,507],{},"# C:\\Users\\numbe\\AppData\\Local\\mise\\installs\\node\\22.22.2\n",[14,509,510],{},"Node も npm も mise 側。問題なさそうに見えた。",[70,512,514],{"className":72,"code":513,"language":74,"meta":75,"style":75},"npm install -g @anthropic-ai/claude-code\n# added 1 package in 1s\n\nGet-Command claude -All\n# claude: The term 'claude' is not recognized...\n",[45,515,516,521,526,530,535],{"__ignoreMap":75},[79,517,518],{"class":81,"line":82},[79,519,520],{},"npm install -g @anthropic-ai/claude-code\n",[79,522,523],{"class":81,"line":114},[79,524,525],{},"# added 1 package in 1s\n",[79,527,528],{"class":81,"line":120},[79,529,240],{"emptyLinePlaceholder":239},[79,531,532],{"class":81,"line":192},[79,533,534],{},"Get-Command claude -All\n",[79,536,537],{"class":81,"line":248},[79,538,539],{},"# claude: The term 'claude' is not recognized...\n",[14,541,542],{},"入れたのに、また見つからない。",[14,544,545],{},"mise の shim が作り直されていないのが原因だった。npm で global に何かを入れたら、mise に shim を再生成してもらう必要がある。",[70,547,549],{"className":72,"code":548,"language":74,"meta":75,"style":75},"mise reshim node\n\nGet-Command claude -All\n# Application  claude.exe  0.0.0.0  C:\\Users\\numbe\\AppData\\Local\\mise\\...\n# Application  claude      0.0.0.0  C:\\Users\\numbe\\AppData\\Local\\mise\\...\n",[45,550,551,556,560,564,569],{"__ignoreMap":75},[79,552,553],{"class":81,"line":82},[79,554,555],{},"mise reshim node\n",[79,557,558],{"class":81,"line":114},[79,559,240],{"emptyLinePlaceholder":239},[79,561,562],{"class":81,"line":120},[79,563,534],{},[79,565,566],{"class":81,"line":192},[79,567,568],{},"# Application  claude.exe  0.0.0.0  C:\\Users\\numbe\\AppData\\Local\\mise\\...\n",[79,570,571],{"class":81,"line":248},[79,572,573],{},"# Application  claude      0.0.0.0  C:\\Users\\numbe\\AppData\\Local\\mise\\...\n",[14,575,576],{},"claude は見えるようになった。が、実行したら次のエラーに突き刺さった。",[27,578],{},[30,580,582,583,586],{"id":581},"_6-npm-版-claudeexe-の中身はエラーメッセージを出すだけのスクリプトだった","6. npm 版 ",[45,584,585],{},"claude.exe"," の中身は、エラーメッセージを出すだけのスクリプトだった",[70,588,590],{"className":72,"code":589,"language":74,"meta":75,"style":75},"claude --version\n",[45,591,592],{"__ignoreMap":75},[79,593,594],{"class":81,"line":82},[79,595,589],{},[70,597,600],{"className":598,"code":599,"language":93},[91],"このバージョンの C:\\Users\\numbe\\AppData\\Local\\mise\\installs\\node\\22.22.2\\\nnode_modules\\@anthropic-ai\\claude-code\\bin\\claude.exe は、実行中の Windows の\nバージョンと互換性がありません。コンピューターのシステム情報を確認してから、\nソフトウェアの発行元に問い合わせてください。\n",[45,601,599],{"__ignoreMap":75},[14,603,604],{},"Windows の互換性エラー。claude.exe の実体を見に行った。",[70,606,608],{"className":72,"code":607,"language":74,"meta":75,"style":75},"Get-ChildItem \"$env:LOCALAPPDATA\\mise\\installs\\node\\22.22.2\\node_modules\\@anthropic-ai\\claude-code\\bin\"\n",[45,609,610],{"__ignoreMap":75},[79,611,612],{"class":81,"line":82},[79,613,607],{},[70,615,618],{"className":616,"code":617,"language":93},[91],"Mode       LastWriteTime         Length Name\n----       -------------         ------ ----\n-a---      2026/04/24 7:22           500 claude.exe\n",[45,619,617],{"__ignoreMap":75},[14,621,622],{},"500 バイト。普通の Windows 実行ファイルが 500 バイトで収まるわけがない。",[14,624,625],{},"中身を見た。",[70,627,629],{"className":72,"code":628,"language":74,"meta":75,"style":75},"Get-Content \"$env:LOCALAPPDATA\\mise\\installs\\node\\22.22.2\\node_modules\\@anthropic-ai\\claude-code\\bin\\claude.exe\"\n",[45,630,631],{"__ignoreMap":75},[79,632,633],{"class":81,"line":82},[79,634,628],{},[70,636,640],{"className":637,"code":638,"language":639,"meta":75,"style":75},"language-bash shiki shiki-themes vitesse-light vitesse-light","echo \"Error: claude native binary not installed.\" >&2\necho \"\" >&2\necho \"Either postinstall did not run (--ignore-scripts, some pnpm configs)\" >&2\necho \"or the platform-native optional dependency was not downloaded\" >&2\necho \"(--omit=optional).\" >&2\necho \"\" >&2\necho \"Run the postinstall manually (adjust path for local vs global install):\" >&2\necho \"  node node_modules/@anthropic-ai/claude-code/install.cjs\" >&2\necho \"\" >&2\necho \"Or reinstall without --ignore-scripts / --omit=optional.\" >&2\nexit 1\n","bash",[45,641,642,663,672,685,698,711,719,732,745,753,766],{"__ignoreMap":75},[79,643,644,648,652,656,659],{"class":81,"line":82},[79,645,647],{"class":646},"sz8Xr","echo",[79,649,651],{"class":650},"sMJiu"," \"",[79,653,655],{"class":654},"sdGka","Error: claude native binary not installed.",[79,657,658],{"class":650},"\"",[79,660,662],{"class":661},"stQ0i"," >&2\n",[79,664,665,667,670],{"class":81,"line":114},[79,666,647],{"class":646},[79,668,669],{"class":650}," \"\"",[79,671,662],{"class":661},[79,673,674,676,678,681,683],{"class":81,"line":120},[79,675,647],{"class":646},[79,677,651],{"class":650},[79,679,680],{"class":654},"Either postinstall did not run (--ignore-scripts, some pnpm configs)",[79,682,658],{"class":650},[79,684,662],{"class":661},[79,686,687,689,691,694,696],{"class":81,"line":192},[79,688,647],{"class":646},[79,690,651],{"class":650},[79,692,693],{"class":654},"or the platform-native optional dependency was not downloaded",[79,695,658],{"class":650},[79,697,662],{"class":661},[79,699,700,702,704,707,709],{"class":81,"line":248},[79,701,647],{"class":646},[79,703,651],{"class":650},[79,705,706],{"class":654},"(--omit=optional).",[79,708,658],{"class":650},[79,710,662],{"class":661},[79,712,713,715,717],{"class":81,"line":254},[79,714,647],{"class":646},[79,716,669],{"class":650},[79,718,662],{"class":661},[79,720,721,723,725,728,730],{"class":81,"line":260},[79,722,647],{"class":646},[79,724,651],{"class":650},[79,726,727],{"class":654},"Run the postinstall manually (adjust path for local vs global install):",[79,729,658],{"class":650},[79,731,662],{"class":661},[79,733,734,736,738,741,743],{"class":81,"line":266},[79,735,647],{"class":646},[79,737,651],{"class":650},[79,739,740],{"class":654},"  node node_modules/@anthropic-ai/claude-code/install.cjs",[79,742,658],{"class":650},[79,744,662],{"class":661},[79,746,747,749,751],{"class":81,"line":272},[79,748,647],{"class":646},[79,750,669],{"class":650},[79,752,662],{"class":661},[79,754,755,757,759,762,764],{"class":81,"line":278},[79,756,647],{"class":646},[79,758,651],{"class":650},[79,760,761],{"class":654},"Or reinstall without --ignore-scripts / --omit=optional.",[79,763,658],{"class":650},[79,765,662],{"class":661},[79,767,768,771],{"class":81,"line":284},[79,769,770],{"class":646},"exit",[79,772,774],{"class":773},"sM54T"," 1\n",[14,776,777,778,785],{},"正体が割れた。",[779,780,781,782,784],"strong",{},"npm 版の Claude Code は ",[45,783,585],{}," を装ったシェルスクリプトで、本体のネイティブバイナリは optional dependency として別途ダウンロードされる仕組み","になっている。mise 経由の npm インストールだと、この postinstall / optional dependency のルートが機能せず、ネイティブバイナリが降ってこない。だから 500 バイトのエラースクリプトだけが残った。",[14,787,788],{},"ここは npm での格闘をやめて、Anthropic 公式のネイティブインストーラーに切り替えた。",[70,790,792],{"className":72,"code":791,"language":74,"meta":75,"style":75},"npm uninstall -g @anthropic-ai/claude-code\nmise reshim node\n\n# Claude Code 公式インストーラー\nirm https://claude.ai/install.ps1 | iex\n",[45,793,794,799,803,807,812],{"__ignoreMap":75},[79,795,796],{"class":81,"line":82},[79,797,798],{},"npm uninstall -g @anthropic-ai/claude-code\n",[79,800,801],{"class":81,"line":114},[79,802,555],{},[79,804,805],{"class":81,"line":120},[79,806,240],{"emptyLinePlaceholder":239},[79,808,809],{"class":81,"line":192},[79,810,811],{},"# Claude Code 公式インストーラー\n",[79,813,814],{"class":81,"line":248},[79,815,816],{},"irm https://claude.ai/install.ps1 | iex\n",[70,818,821],{"className":819,"code":820,"language":93},[91],"Setting up Claude Code...\n\nClaude Code successfully installed!\n\n  Version: 2.1.119\n  Location: C:\\Users\\numbe\\.local\\bin\\claude.exe\n\nInstallation complete!\n",[45,822,820],{"__ignoreMap":75},[14,824,825],{},"確認した。",[70,827,829],{"className":72,"code":828,"language":74,"meta":75,"style":75},"where.exe claude\n# C:\\Users\\numbe\\.local\\bin\\claude.exe\nclaude --version\n# 2.1.119 (Claude Code)\n",[45,830,831,836,841,845],{"__ignoreMap":75},[79,832,833],{"class":81,"line":82},[79,834,835],{},"where.exe claude\n",[79,837,838],{"class":81,"line":114},[79,839,840],{},"# C:\\Users\\numbe\\.local\\bin\\claude.exe\n",[79,842,843],{"class":81,"line":120},[79,844,589],{},[79,846,847],{"class":81,"line":192},[79,848,849],{},"# 2.1.119 (Claude Code)\n",[14,851,852],{},"動いた。",[27,854],{},[30,856,857],{"id":857},"最終状態",[859,860,861,874],"table",{},[862,863,864],"thead",{},[865,866,867,871],"tr",{},[868,869,870],"th",{},"項目",[868,872,873],{},"結果",[875,876,877,886,895,905,913,925],"tbody",{},[865,878,879,883],{},[880,881,882],"td",{},"Node.js の管理",[880,884,885],{},"mise に切り替え済み",[865,887,888,892],{},[880,889,890],{},[45,891,342],{},[880,893,894],{},"v22.22.2（mise 側）",[865,896,897,902],{},[880,898,899],{},[45,900,901],{},"C:\\Program Files\\Volta\\node.exe",[880,903,904],{},"PATH から除外済み",[865,906,907,910],{},[880,908,909],{},"ユーザー環境変数の Volta 参照",[880,911,912],{},"削除済み",[865,914,915,918],{},[880,916,917],{},"Claude Code",[880,919,920,921,924],{},"公式ネイティブインストーラー版（",[45,922,923],{},"C:\\Users\\numbe\\.local\\bin\\claude.exe","）",[865,926,927,932],{},[880,928,929],{},[45,930,931],{},"claude --version",[880,933,934],{},[45,935,936],{},"2.1.119 (Claude Code)",[14,938,939],{},"今後プロジェクトで使うときはいつも通り。",[70,941,943],{"className":72,"code":942,"language":74,"meta":75,"style":75},"cd C:\\Users\\numbe\\Git_repo\\eurekapu-nuxt4\nclaude --resume\n",[45,944,945,950],{"__ignoreMap":75},[79,946,947],{"class":81,"line":82},[79,948,949],{},"cd C:\\Users\\numbe\\Git_repo\\eurekapu-nuxt4\n",[79,951,952],{"class":81,"line":114},[79,953,954],{},"claude --resume\n",[27,956],{},[30,958,959],{"id":959},"詰まったポイント5つの総括",[859,961,962,975],{},[862,963,964],{},[865,965,966,969,972],{},[868,967,968],{},"#",[868,970,971],{},"詰まりどころ",[868,973,974],{},"解決策",[875,976,977,1000,1013,1026,1044],{},[865,978,979,982,991],{},[880,980,981],{},"1",[880,983,984,985,987,988,990],{},"PowerShell で ",[45,986,60],{}," / ",[45,989,64],{}," を打っていた",[880,992,993,987,996,999],{},[45,994,995],{},"Select-Object -First",[45,997,998],{},"Get-Command"," を使う",[865,1001,1002,1005,1008],{},[880,1003,1004],{},"2",[880,1006,1007],{},"mise は入っていたが PATH の優先順位で Volta が勝っていた",[880,1009,1010,1012],{},[45,1011,166],{}," で並び順を確認",[865,1014,1015,1018,1021],{},[880,1016,1017],{},"3",[880,1019,1020],{},"環境変数編集画面が「2047文字超え」で保存を拒否した",[880,1022,1023,1025],{},[45,1024,417],{}," で直接書き換え",[865,1027,1028,1031,1037],{},[880,1029,1030],{},"4",[880,1032,1033,1034,1036],{},"環境変数を更新してもセッションの ",[45,1035,413],{}," に反映されない",[880,1038,1039,1040,1043],{},"保存済みは ",[45,1041,1042],{},"[Environment]::GetEnvironmentVariable(..., \"User\")"," で見る",[865,1045,1046,1049,1055],{},[880,1047,1048],{},"5",[880,1050,1051,1052,1054],{},"npm 版 ",[45,1053,585],{}," の中身がネイティブバイナリ不足のエラースクリプト",[880,1056,1057,1058,1061],{},"公式の ",[45,1059,1060],{},"irm https://claude.ai/install.ps1 | iex"," で入れ直す",[27,1063],{},[30,1065,1066],{"id":1066},"今後の切り分けに使うコマンド集",[14,1068,1069],{},"同じ種類の問題にまた当たったとき、このリストを順に叩けばだいたい当たりが付く。",[70,1071,1073],{"className":72,"code":1072,"language":74,"meta":75,"style":75},"# Node / npm がどこを見ているか\nGet-Command node -All\nnode -v\nnpm -v\nnpm prefix -g\n\n# PATH に Volta / mise がどう並んでいるか\n$env:Path -split ';' | Select-String \"Volta|mise\"\n[Environment]::GetEnvironmentVariable(\"Path\", \"User\") -split ';' | Select-String \"Volta|mise\"\n[Environment]::GetEnvironmentVariable(\"Path\", \"Machine\") -split ';' | Select-String \"Volta|mise\"\n\n# Claude Code\nwhere.exe claude\nclaude --version\n",[45,1074,1075,1080,1084,1088,1093,1097,1101,1106,1111,1115,1120,1124,1129,1133],{"__ignoreMap":75},[79,1076,1077],{"class":81,"line":82},[79,1078,1079],{},"# Node / npm がどこを見ているか\n",[79,1081,1082],{"class":81,"line":114},[79,1083,326],{},[79,1085,1086],{"class":81,"line":120},[79,1087,189],{},[79,1089,1090],{"class":81,"line":192},[79,1091,1092],{},"npm -v\n",[79,1094,1095],{"class":81,"line":248},[79,1096,502],{},[79,1098,1099],{"class":81,"line":254},[79,1100,240],{"emptyLinePlaceholder":239},[79,1102,1103],{"class":81,"line":260},[79,1104,1105],{},"# PATH に Volta / mise がどう並んでいるか\n",[79,1107,1108],{"class":81,"line":266},[79,1109,1110],{},"$env:Path -split ';' | Select-String \"Volta|mise\"\n",[79,1112,1113],{"class":81,"line":272},[79,1114,431],{},[79,1116,1117],{"class":81,"line":278},[79,1118,1119],{},"[Environment]::GetEnvironmentVariable(\"Path\", \"Machine\") -split ';' | Select-String \"Volta|mise\"\n",[79,1121,1122],{"class":81,"line":284},[79,1123,240],{"emptyLinePlaceholder":239},[79,1125,1126],{"class":81,"line":290},[79,1127,1128],{},"# Claude Code\n",[79,1130,1131],{"class":81,"line":295},[79,1132,835],{},[79,1134,1135],{"class":81,"line":301},[79,1136,589],{},[14,1138,1139],{},"mise に npm global で何か入れたあと。",[70,1141,1142],{"className":72,"code":555,"language":74,"meta":75,"style":75},[45,1143,1144],{"__ignoreMap":75},[79,1145,1146],{"class":81,"line":82},[79,1147,555],{},[14,1149,1150],{},"Claude Code の再インストール（Windows）。",[70,1152,1153],{"className":72,"code":816,"language":74,"meta":75,"style":75},[45,1154,1155],{"__ignoreMap":75},[79,1156,1157],{"class":81,"line":82},[79,1158,816],{},[27,1160],{},[30,1162,1163],{"id":1163},"関連記事",[35,1165,1166,1172],{},[38,1167,1168,1171],{},[18,1169,1170],{"href":20},"Voltaがメンテナンス終了 - miseへの移行をどう進めるか","（移行方針を立てた記事。今回の作業で Phase 4 まで完了）",[38,1173,1174,1178],{},[18,1175,1177],{"href":1176},"/claude-code-remote-control-volta-fix-2026-02-25","Claude Code remote-controlがVolta環境で動かないバグを直した","（Volta時代のClaude Code の不具合対応）",[1180,1181,1182],"style",{},"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 .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .sM54T, html code.shiki .sM54T{--shiki-default:#2F798A;--shiki-dark:#2F798A}",{"title":75,"searchDepth":114,"depth":114,"links":1184},[1185,1186,1188,1189,1190,1191,1193,1195,1196,1197,1198],{"id":32,"depth":114,"text":33},{"id":56,"depth":114,"text":1187},"1. PowerShell で head や which が動かない",{"id":131,"depth":114,"text":132},{"id":203,"depth":114,"text":204},{"id":312,"depth":114,"text":313},{"id":444,"depth":114,"text":1192},"5. Node は切り替わったのに claude コマンドが消えた",{"id":581,"depth":114,"text":1194},"6. npm 版 claude.exe の中身は、エラーメッセージを出すだけのスクリプトだった",{"id":857,"depth":114,"text":857},{"id":959,"depth":114,"text":959},{"id":1066,"depth":114,"text":1066},{"id":1163,"depth":114,"text":1163},"dev","Node.js管理をVoltaからmiseに切り替え、Claude Codeをネイティブインストーラー版で入れ直した記録。PATHの優先順位、Windows環境変数の2047文字制限、npm版claude.exeがエラー用スクリプトだった罠まで、実作業で詰まったポイントを全部書き残した","md",{},"/volta-to-mise-migration-complete","misc-dev",false,"2026-04-23T00:00:00.000Z",{"title":5,"description":1200},"2026-04/2026-04-23/volta-to-mise-migration-complete",[1210,1211,1212,917,1213,1214,1215],"Node.js","Volta","mise","Windows","PowerShell","開発環境","done",null,"JfRiIx7dQKjmUcjj3XskH39R7VUIYxBLBvuLQzz-Fa8",[],"https://log.eurekapu.com/og/blog/volta-to-mise-migration-complete.png?v=2026-04-23T00%3A00%3A00.000Z&title=Volta%20%E3%81%8B%E3%82%89%20mise%20%E3%81%B8%E3%81%AE%E7%A7%BB%E8%A1%8C%E5%AE%8C%E4%BA%86%20-%20Claude%20Code%20%E3%82%92%E5%85%A5%E3%82%8C%E7%9B%B4%E3%81%99%E3%81%BE%E3%81%A7%E3%81%AB%E8%A9%B0%E3%81%BE%E3%81%A3%E3%81%9F5%E3%81%A4%E3%81%AE%E8%90%BD%E3%81%A8%E3%81%97%E7%A9%B4&author=Kei%20Komatsu&sig=33226afa047fd5bd",1780786054986]