[{"data":1,"prerenderedAt":525},["ShallowReactive",2],{"content-/pnpm-vs-npm-build-commands":3,"all-pages-for-dir":502,"related-/pnpm-vs-npm-build-commands":503,"og-image-/pnpm-vs-npm-build-commands":524},{"id":4,"title":5,"body":6,"category":490,"concepts":490,"description":491,"extension":492,"meta":493,"navigation":336,"ogImage":490,"path":494,"project_name":490,"published":495,"publishedAt":496,"seo":497,"source":490,"stem":498,"tags":499,"todo":490,"unpublished":495,"updatedAt":490,"__hash__":501},"pages/2025-11/2025-11-14/pnpm-vs-npm-build-commands.md","pnpm build vs npm run build の違い",{"type":7,"value":8,"toc":473},"minimark",[9,13,17,45,48,53,125,131,149,153,157,171,175,193,196,292,296,302,359,365,402,406,410,416,419,422,436,441,444,469],[10,11,5],"h1",{"id":12},"pnpm-build-vs-npm-run-build-の違い",[14,15,16],"h2",{"id":16},"結論",[18,19,20,32,33,36,37,40,41,44],"p",{},[21,22,23,27,28,31],"strong",{},[24,25,26],"code",{},"pnpm build"," と ",[24,29,30],{},"npm run build"," は本質的に同じことをしています。"," どちらも ",[24,34,35],{},"package.json"," の ",[24,38,39],{},"scripts"," セクションに定義された ",[24,42,43],{},"build"," スクリプトを実行します。",[14,46,47],{"id":47},"本質的な違いはない",[49,50,52],"h3",{"id":51},"packagejson-の-scripts","package.json の scripts",[54,55,60],"pre",{"className":56,"code":57,"language":58,"meta":59,"style":59},"language-json shiki shiki-themes vitesse-light vitesse-light","{\n  \"scripts\": {\n    \"build\": \"nuxt build\"\n  }\n}\n","json","",[24,61,62,71,90,113,119],{"__ignoreMap":59},[63,64,67],"span",{"class":65,"line":66},"line",1,[63,68,70],{"class":69},"shFtX","{\n",[63,72,74,78,81,84,87],{"class":65,"line":73},2,[63,75,77],{"class":76},"sqvqQ","  \"",[63,79,39],{"class":80},"sz8Xr",[63,82,83],{"class":76},"\"",[63,85,86],{"class":69},":",[63,88,89],{"class":69}," {\n",[63,91,93,96,98,100,102,106,110],{"class":65,"line":92},3,[63,94,95],{"class":76},"    \"",[63,97,43],{"class":80},[63,99,83],{"class":76},[63,101,86],{"class":69},[63,103,105],{"class":104},"sMJiu"," \"",[63,107,109],{"class":108},"sdGka","nuxt build",[63,111,112],{"class":104},"\"\n",[63,114,116],{"class":65,"line":115},4,[63,117,118],{"class":69},"  }\n",[63,120,122],{"class":65,"line":121},5,[63,123,124],{"class":69},"}\n",[18,126,127,128,130],{},"両方のコマンドは、この ",[24,129,43],{}," スクリプトを実行するだけです：",[132,133,134,143],"ul",{},[135,136,137,139,140,142],"li",{},[24,138,30],{}," → ",[24,141,109],{}," を実行",[135,144,145,139,147,142],{},[24,146,26],{},[24,148,109],{},[14,150,152],{"id":151},"違いはパッケージマネージャー","違いは「パッケージマネージャー」",[49,154,156],{"id":155},"npm-node-package-manager","npm (Node Package Manager)",[132,158,159,162,165],{},[135,160,161],{},"Node.js の公式パッケージマネージャー",[135,163,164],{},"デフォルトで Node.js に付属",[135,166,167,168],{},"コマンド形式: ",[24,169,170],{},"npm run \u003Cscript-name>",[49,172,174],{"id":173},"pnpm-performant-npm","pnpm (Performant npm)",[132,176,177,180,183],{},[135,178,179],{},"npm の代替パッケージマネージャー",[135,181,182],{},"高速で、ディスク容量を節約",[135,184,167,185,188,189,192],{},[24,186,187],{},"pnpm \u003Cscript-name>"," （",[24,190,191],{},"run"," を省略可能）",[14,194,195],{"id":195},"コマンドの違い",[197,198,199,215],"table",{},[200,201,202],"thead",{},[203,204,205,209,212],"tr",{},[206,207,208],"th",{},"やりたいこと",[206,210,211],{},"npm",[206,213,214],{},"pnpm",[216,217,218,234,249,262,277],"tbody",{},[203,219,220,224,229],{},[221,222,223],"td",{},"依存関係のインストール",[221,225,226],{},[24,227,228],{},"npm install",[221,230,231],{},[24,232,233],{},"pnpm install",[203,235,236,239,244],{},[221,237,238],{},"開発サーバー起動",[221,240,241],{},[24,242,243],{},"npm run dev",[221,245,246],{},[24,247,248],{},"pnpm dev",[203,250,251,254,258],{},[221,252,253],{},"ビルド",[221,255,256],{},[24,257,30],{},[221,259,260],{},[24,261,26],{},[203,263,264,267,272],{},[221,265,266],{},"プレビュー",[221,268,269],{},[24,270,271],{},"npm run preview",[221,273,274],{},[24,275,276],{},"pnpm preview",[203,278,279,282,287],{},[221,280,281],{},"パッケージ追加",[221,283,284],{},[24,285,286],{},"npm install \u003Cpkg>",[221,288,289],{},[24,290,291],{},"pnpm add \u003Cpkg>",[14,293,295],{"id":294},"pnpm-の省略記法","pnpm の省略記法",[18,297,298,299,301],{},"pnpm は ",[24,300,191],{}," キーワードを省略できます：",[54,303,307],{"className":304,"code":305,"language":306,"meta":59,"style":59},"language-bash shiki shiki-themes vitesse-light vitesse-light","# どちらも同じ\npnpm run build\npnpm build\n\n# どちらも同じ\npnpm run dev\npnpm dev\n","bash",[24,308,309,315,326,332,338,342,352],{"__ignoreMap":59},[63,310,311],{"class":65,"line":66},[63,312,314],{"class":313},"sxvE3","# どちらも同じ\n",[63,316,317,320,323],{"class":65,"line":73},[63,318,214],{"class":319},"senZ8",[63,321,322],{"class":108}," run",[63,324,325],{"class":108}," build\n",[63,327,328,330],{"class":65,"line":92},[63,329,214],{"class":319},[63,331,325],{"class":108},[63,333,334],{"class":65,"line":115},[63,335,337],{"emptyLinePlaceholder":336},true,"\n",[63,339,340],{"class":65,"line":121},[63,341,314],{"class":313},[63,343,345,347,349],{"class":65,"line":344},6,[63,346,214],{"class":319},[63,348,322],{"class":108},[63,350,351],{"class":108}," dev\n",[63,353,355,357],{"class":65,"line":354},7,[63,356,214],{"class":319},[63,358,351],{"class":108},[18,360,361,362,364],{},"npm は ",[24,363,191],{}," を省略できません（一部の特殊なコマンド以外）：",[54,366,368],{"className":304,"code":367,"language":306,"meta":59,"style":59},"# これは動く\nnpm run build\n\n# これは動かない（一部の例外を除く）\nnpm build  # ❌\n",[24,369,370,375,383,387,392],{"__ignoreMap":59},[63,371,372],{"class":65,"line":66},[63,373,374],{"class":313},"# これは動く\n",[63,376,377,379,381],{"class":65,"line":73},[63,378,211],{"class":319},[63,380,322],{"class":108},[63,382,325],{"class":108},[63,384,385],{"class":65,"line":92},[63,386,337],{"emptyLinePlaceholder":336},[63,388,389],{"class":65,"line":115},[63,390,391],{"class":313},"# これは動かない（一部の例外を除く）\n",[63,393,394,396,399],{"class":65,"line":121},[63,395,211],{"class":319},[63,397,398],{"class":108}," build",[63,400,401],{"class":313},"  # ❌\n",[14,403,405],{"id":404},"どちらを使うべきか","どちらを使うべきか？",[49,407,409],{"id":408},"このプロジェクトでは-pnpm-を使う","このプロジェクトでは pnpm を使う",[18,411,412,413,415],{},"プロジェクトの方針に従ってください。このプロジェクトでは ",[21,414,214],{}," を使用します。",[49,417,418],{"id":418},"混在させない",[18,420,421],{},"同じプロジェクトで npm と pnpm を混在させると、異なるロックファイルが作られて問題が起こります：",[132,423,424,430],{},[135,425,426,427],{},"npm → ",[24,428,429],{},"package-lock.json",[135,431,432,433],{},"pnpm → ",[24,434,435],{},"pnpm-lock.yaml",[18,437,438],{},[21,439,440],{},"一つのパッケージマネージャーに統一しましょう。",[14,442,443],{"id":443},"まとめ",[132,445,446,458,461,467],{},[135,447,448,450,451,450,453,36,455,457],{},[24,449,26],{}," = ",[24,452,30],{},[24,454,35],{},[24,456,43],{}," スクリプトを実行",[135,459,460],{},"違いは「どのパッケージマネージャーを使うか」だけ",[135,462,463,464,466],{},"このプロジェクトでは ",[21,465,214],{}," を使用",[135,468,418],{},[470,471,472],"style",{},"html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .sqvqQ, html code.shiki .sqvqQ{--shiki-default:#99841877;--shiki-dark:#99841877}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 .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 .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}",{"title":59,"searchDepth":73,"depth":73,"links":474},[475,476,479,483,484,485,489],{"id":16,"depth":73,"text":16},{"id":47,"depth":73,"text":47,"children":477},[478],{"id":51,"depth":92,"text":52},{"id":151,"depth":73,"text":152,"children":480},[481,482],{"id":155,"depth":92,"text":156},{"id":173,"depth":92,"text":174},{"id":195,"depth":73,"text":195},{"id":294,"depth":73,"text":295},{"id":404,"depth":73,"text":405,"children":486},[487,488],{"id":408,"depth":92,"text":409},{"id":418,"depth":92,"text":418},{"id":443,"depth":73,"text":443},null,"pnpmとnpmのビルドコマンドの本質的な違いを理解する","md",{},"/pnpm-vs-npm-build-commands",false,"2025-11-14T00:00:00.000Z",{"title":5,"description":491},"2025-11/2025-11-14/pnpm-vs-npm-build-commands",[211,214,43,500],"package-manager","7mFrGw6uSNPtiG3BDyLKHm8qYNpeaMa_30t--3PbWt8",[],[504,508,512,516,520],{"title":505,"path":506,"publishedAt":507},"npmサプライチェーン攻撃 Shai-Hulud 2.0 への防御設定 - minimum-release-ageで新規バージョンをブロック","/npm-supply-chain-defense","2026-04-03T00:00:00.000Z",{"title":509,"path":510,"publishedAt":511},"ローカルnpmパッケージ化ガイド","/local-npm-package-guide","2026-01-01T00:00:00.000Z",{"title":513,"path":514,"publishedAt":515},"npm vs CDN - JavaScriptライブラリの読み込み方法の違いと使い分け","/npm-vs-cdn-guide","2025-11-12T00:00:00.000Z",{"title":517,"path":518,"publishedAt":519},"Claude Codeの自動メモリ棚卸しとccusageトークン使用量確認 ― 運用メンテナンスの一日","/claude-code-memory-inventory","2026-07-03T00:00:00.000Z",{"title":521,"path":522,"publishedAt":523},"家族旅行アーカイブを Astro + Cloudflare Pages で立ち上げた記録（pnpm の minimumReleaseAge で躓いた話含む）","/family-trips-astro-cloudflare-launch","2026-05-17T00:00:00.000Z","https://log.eurekapu.com/og/blog/pnpm-vs-npm-build-commands.png?v=2025-11-14T00%3A00%3A00.000Z&title=pnpm%20build%20vs%20npm%20run%20build%20%E3%81%AE%E9%81%95%E3%81%84&author=Kei%20Komatsu&sig=65e9bae853a7633b",1785654660214]