[{"data":1,"prerenderedAt":356},["ShallowReactive",2],{"content-/windows-nul-file-issue":3,"all-pages-for-dir":333,"related-/windows-nul-file-issue":334,"og-image-/windows-nul-file-issue":355},{"id":4,"title":5,"body":6,"category":319,"concepts":319,"description":320,"extension":321,"meta":322,"navigation":125,"ogImage":319,"path":323,"project_name":319,"published":324,"publishedAt":325,"seo":326,"source":319,"stem":327,"tags":328,"todo":319,"unpublished":324,"updatedAt":325,"__hash__":332},"pages/2025-12/2025-12-04/windows-nul-file-issue.md","Windows で nul ファイルが勝手に作成される問題",{"type":7,"value":8,"toc":304},"minimark",[9,13,17,26,36,39,42,47,54,88,92,99,145,148,151,174,177,203,206,210,215,228,232,235,252,255,258,264,267,300],[10,11,5],"h1",{"id":12},"windows-で-nul-ファイルが勝手に作成される問題",[14,15,16],"h2",{"id":16},"現象",[18,19,20,21,25],"p",{},"Windows 環境で開発していると、プロジェクトルートに ",[22,23,24],"code",{},"nul"," という 0 バイトの空ファイルが作成されることがある。",[27,28,33],"pre",{"className":29,"code":31,"language":32},[30],"language-text","?? nul\n","text",[22,34,31],{"__ignoreMap":35},"",[14,37,38],{"id":38},"原因",[18,40,41],{},"これはUnix/LinuxとWindowsのデバイスファイルの違いに起因する。",[43,44,46],"h3",{"id":45},"unixlinux-の場合","Unix/Linux の場合",[18,48,49,50,53],{},"出力を捨てる（破棄する）ために ",[22,51,52],{},"/dev/null"," という特殊なデバイスファイルを使用する：",[27,55,59],{"className":56,"code":57,"language":58,"meta":35,"style":35},"language-bash shiki shiki-themes vitesse-light vitesse-light","# Unix/Linux\ncommand > /dev/null 2>&1\n","bash",[22,60,61,70],{"__ignoreMap":35},[62,63,66],"span",{"class":64,"line":65},"line",1,[62,67,69],{"class":68},"sxvE3","# Unix/Linux\n",[62,71,73,77,81,85],{"class":64,"line":72},2,[62,74,76],{"class":75},"sz8Xr","command",[62,78,80],{"class":79},"stQ0i"," >",[62,82,84],{"class":83},"sdGka"," /dev/null",[62,86,87],{"class":79}," 2>&1\n",[43,89,91],{"id":90},"windows-の場合","Windows の場合",[18,93,94,95,98],{},"Windows では同等の機能を持つ ",[22,96,97],{},"NUL"," デバイスを使用する：",[27,100,102],{"className":56,"code":101,"language":58,"meta":35,"style":35},"# Windows (CMD)\ncommand > NUL 2>&1\n\n# Windows (PowerShell)\ncommand | Out-Null\n",[22,103,104,109,120,127,133],{"__ignoreMap":35},[62,105,106],{"class":64,"line":65},[62,107,108],{"class":68},"# Windows (CMD)\n",[62,110,111,113,115,118],{"class":64,"line":72},[62,112,76],{"class":75},[62,114,80],{"class":79},[62,116,117],{"class":83}," NUL",[62,119,87],{"class":79},[62,121,123],{"class":64,"line":122},3,[62,124,126],{"emptyLinePlaceholder":125},true,"\n",[62,128,130],{"class":64,"line":129},4,[62,131,132],{"class":68},"# Windows (PowerShell)\n",[62,134,136,138,141],{"class":64,"line":135},5,[62,137,76],{"class":75},[62,139,140],{"class":79}," |",[62,142,144],{"class":143},"senZ8"," Out-Null\n",[43,146,147],{"id":147},"問題が発生するケース",[18,149,150],{},"多くのnpmパッケージやNode.jsツールはUnix/Linux向けに書かれている。これらがWindowsで実行されると：",[152,153,154,162,168],"ol",{},[155,156,157,158,161],"li",{},"ツールが ",[22,159,160],{},"> /dev/null"," を使おうとする",[155,163,164,165,167],{},"Windows では ",[22,166,52],{}," は存在しない",[155,169,170,171,173],{},"代わりにカレントディレクトリに ",[22,172,24],{}," という名前のファイルが作成されてしまう",[14,175,176],{"id":176},"よくある発生タイミング",[178,179,180,190,197,200],"ul",{},[155,181,182,185,186,189],{},[22,183,184],{},"pnpm dev"," や ",[22,187,188],{},"pnpm build"," 実行時",[155,191,192,193,196],{},"npm パッケージのインストール時（",[22,194,195],{},"pnpm install","）",[155,198,199],{},"一部の CLI ツール（lint、formatter など）実行時",[155,201,202],{},"pre-commit フックやスクリプト実行時",[14,204,205],{"id":205},"対処法",[43,207,209],{"id":208},"_1-ファイルを削除する","1. ファイルを削除する",[18,211,212,214],{},[22,213,24],{}," ファイルは空なので、安全に削除できる：",[27,216,218],{"className":56,"code":217,"language":58,"meta":35,"style":35},"rm nul\n",[22,219,220],{"__ignoreMap":35},[62,221,222,225],{"class":64,"line":65},[62,223,224],{"class":143},"rm",[62,226,227],{"class":83}," nul\n",[43,229,231],{"id":230},"_2-gitignore-に追加する","2. .gitignore に追加する",[18,233,234],{},"再発しても git に追跡されないようにする：",[27,236,240],{"className":237,"code":238,"language":239,"meta":35,"style":35},"language-gitignore shiki shiki-themes vitesse-light vitesse-light","# Windows NUL device file (created accidentally by some tools)\nnul\n","gitignore",[22,241,242,247],{"__ignoreMap":35},[62,243,244],{"class":64,"line":65},[62,245,246],{},"# Windows NUL device file (created accidentally by some tools)\n",[62,248,249],{"class":64,"line":72},[62,250,251],{},"nul\n",[14,253,254],{"id":254},"根本的な解決は難しい",[18,256,257],{},"WindowsでUnix向けツールを使う以上、この問題を完全に防ぐことは難しい。原因となっているパッケージを特定して修正する必要があるが、多くの場合はサードパーティの依存関係内で発生しているため、実用的ではない。",[18,259,260,263],{},[22,261,262],{},".gitignore"," に追加しておき、たまに削除するのが現実的な対応。",[14,265,266],{"id":266},"参考",[178,268,269,297],{},[155,270,271,272,275,276,275,279,275,282,275,284,287,288,275,291,287,294],{},"Windows の予約デバイス名: ",[22,273,274],{},"CON",", ",[22,277,278],{},"PRN",[22,280,281],{},"AUX",[22,283,97],{},[22,285,286],{},"COM1","-",[22,289,290],{},"COM9",[22,292,293],{},"LPT1",[22,295,296],{},"LPT9",[155,298,299],{},"これらの名前はファイル名として使用できない（はずだが、一部の環境では作成されてしまう）",[301,302,303],"style",{},"html pre.shiki code .sxvE3, html code.shiki .sxvE3{--shiki-default:#A0ADA0;--shiki-dark:#A0ADA0}html pre.shiki code .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}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 .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}",{"title":35,"searchDepth":72,"depth":72,"links":305},[306,307,312,313,317,318],{"id":16,"depth":72,"text":16},{"id":38,"depth":72,"text":38,"children":308},[309,310,311],{"id":45,"depth":122,"text":46},{"id":90,"depth":122,"text":91},{"id":147,"depth":122,"text":147},{"id":176,"depth":72,"text":176},{"id":205,"depth":72,"text":205,"children":314},[315,316],{"id":208,"depth":122,"text":209},{"id":230,"depth":122,"text":231},{"id":254,"depth":72,"text":254},{"id":266,"depth":72,"text":266},null,"Windows 環境で開発中に nul という空ファイルが作成される原因と対処法","md",{},"/windows-nul-file-issue",false,"2025-12-04T00:00:00.000Z",{"title":5,"description":320},"2025-12/2025-12-04/windows-nul-file-issue",[329,330,331],"Windows","開発環境","トラブルシューティング","OmDUhg-iGkcj6xJQ7fYnG73INpHMG7U_I7SGfi6nuP8",[],[335,339,343,347,351],{"title":336,"path":337,"publishedAt":338},"Volta から mise へ移行する方法（2026年版・メンテナンス終了対応）","/volta-to-mise-migration-guide","2026-06-09T00:00:00.000Z",{"title":340,"path":341,"publishedAt":342},"Volta から mise への完全移行と Codex CLI / pnpm / wrangler の再セットアップ","/volta-to-mise-migration-execution","2026-04-24T00:00:00.000Z",{"title":344,"path":345,"publishedAt":346},"Volta から mise への移行完了 - Claude Code を入れ直すまでに詰まった5つの落とし穴","/volta-to-mise-migration-complete","2026-04-23T00:00:00.000Z",{"title":348,"path":349,"publishedAt":350},"Windows Git Bashのタイムゾーン罠とVOICEVOX自動起動修正 - 開発環境改善ログ","/dev-env-improvements-2026-03-22","2026-03-22T00:00:00.000Z",{"title":352,"path":353,"publishedAt":354},"開発環境の快適性を高めるAutoHotkeyスクリプトとClaude Codeプラグイン改善","/dev-environment-improvements","2026-03-19T00:00:00.000Z","https://log.eurekapu.com/og/blog/windows-nul-file-issue.png?v=2025-12-04T00%3A00%3A00.000Z&title=Windows%20%E3%81%A7%20nul%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E5%8B%9D%E6%89%8B%E3%81%AB%E4%BD%9C%E6%88%90%E3%81%95%E3%82%8C%E3%82%8B%E5%95%8F%E9%A1%8C&author=Kei%20Komatsu&sig=1eb15b9aac790d10",1785654671937]