[{"data":1,"prerenderedAt":663},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fpackage-manager\u002Fdependencies":3,"docs-pages":318},{"id":4,"title":5,"body":6,"description":310,"extension":311,"meta":312,"navigation":313,"path":314,"seo":315,"stem":316,"__hash__":317},"docs\u002Fdocs\u002Fpackage-manager\u002Fdependencies.md","Manage dependencies",{"type":7,"value":8,"toc":303},"minimark",[9,13,36,40,87,96,99,140,172,175,190,195,198,218,224,227,242,251,254,274,286,299],[10,11,5],"h1",{"id":12},"manage-dependencies",[14,15,16,17,21,22,21,25,21,28,31,32,35],"p",{},"Use ",[18,19,20],"code",{},"add",", ",[18,23,24],{},"remove",[18,26,27],{},"update",[18,29,30],{},"dedupe",", and ",[18,33,34],{},"prune"," to change a project's\ndependency graph.",[37,38,39],"h2",{"id":20},"Add",[41,42,47],"pre",{"className":43,"code":44,"language":45,"meta":46,"style":46},"language-sh shiki shiki-themes github-light github-dark","scpm add react\nscpm add -D vitest\nscpm add -O fsevents\nscpm add -E typescript\nscpm add --save-peer react\nscpm add -g cowsay\n","sh","",[18,48,49,57,63,69,75,81],{"__ignoreMap":46},[50,51,54],"span",{"class":52,"line":53},"line",1,[50,55,56],{},"scpm add react\n",[50,58,60],{"class":52,"line":59},2,[50,61,62],{},"scpm add -D vitest\n",[50,64,66],{"class":52,"line":65},3,[50,67,68],{},"scpm add -O fsevents\n",[50,70,72],{"class":52,"line":71},4,[50,73,74],{},"scpm add -E typescript\n",[50,76,78],{"class":52,"line":77},5,[50,79,80],{},"scpm add --save-peer react\n",[50,82,84],{"class":52,"line":83},6,[50,85,86],{},"scpm add -g cowsay\n",[14,88,89,91,92,95],{},[18,90,20],{}," writes to the correct dependency section, updates the lockfile, fetches\npackages into the store, and relinks ",[18,93,94],{},"node_modules",".",[14,97,98],{},"Dependency specifiers can use npm aliases, ranges, dist-tags, workspace\nprotocols, JSR packages, local directories, tarballs, git URLs, and direct\ntarball URLs:",[41,100,102],{"className":43,"code":101,"language":45,"meta":46,"style":46},"scpm add react@latest\nscpm add alias-name@npm:actual-name@^1\nscpm add jsr:@std\u002Fcollections@^1.0.0\nscpm add workspace:*\nscpm add file:..\u002Flocal-package\nscpm add link:..\u002Flinked-package\nscpm add https:\u002F\u002Fregistry.example.test\u002Fpkg\u002F-\u002Fpkg-1.0.0.tgz\n",[18,103,104,109,114,119,124,129,134],{"__ignoreMap":46},[50,105,106],{"class":52,"line":53},[50,107,108],{},"scpm add react@latest\n",[50,110,111],{"class":52,"line":59},[50,112,113],{},"scpm add alias-name@npm:actual-name@^1\n",[50,115,116],{"class":52,"line":65},[50,117,118],{},"scpm add jsr:@std\u002Fcollections@^1.0.0\n",[50,120,121],{"class":52,"line":71},[50,122,123],{},"scpm add workspace:*\n",[50,125,126],{"class":52,"line":77},[50,127,128],{},"scpm add file:..\u002Flocal-package\n",[50,130,131],{"class":52,"line":83},[50,132,133],{},"scpm add link:..\u002Flinked-package\n",[50,135,137],{"class":52,"line":136},7,[50,138,139],{},"scpm add https:\u002F\u002Fregistry.example.test\u002Fpkg\u002F-\u002Fpkg-1.0.0.tgz\n",[14,141,142,145,146,152,153,156,157,160,161,164,165,168,169,95],{},[18,143,144],{},"jsr:@scope\u002Fname"," specifiers resolve against JSR's npm-compat endpoint at\n",[147,148,149],"a",{"href":149,"rel":150},"https:\u002F\u002Fnpm.jsr.io",[151],"nofollow",". scpm registers the ",[18,154,155],{},"@jsr"," scope for you, so no\n",[18,158,159],{},".npmrc"," setup is needed — the install fetches the package under its\ncompat name (",[18,162,163],{},"@jsr\u002F\u003Cscope>__\u003Cname>",") and writes ",[18,166,167],{},"jsr:\u003Crange>"," back to\n",[18,170,171],{},"package.json",[37,173,174],{"id":24},"Remove",[41,176,178],{"className":43,"code":177,"language":45,"meta":46,"style":46},"scpm remove react\nscpm remove -g cowsay\n",[18,179,180,185],{"__ignoreMap":46},[50,181,182],{"class":52,"line":53},[50,183,184],{},"scpm remove react\n",[50,186,187],{"class":52,"line":59},[50,188,189],{},"scpm remove -g cowsay\n",[14,191,192,194],{},[18,193,24],{}," updates the manifest and relinks the install.",[37,196,197],{"id":27},"Update",[41,199,201],{"className":43,"code":200,"language":45,"meta":46,"style":46},"scpm update\nscpm update react\nscpm update --latest react\n",[18,202,203,208,213],{"__ignoreMap":46},[50,204,205],{"class":52,"line":53},[50,206,207],{},"scpm update\n",[50,209,210],{"class":52,"line":59},[50,211,212],{},"scpm update react\n",[50,214,215],{"class":52,"line":65},[50,216,217],{},"scpm update --latest react\n",[14,219,220,223],{},[18,221,222],{},"--latest"," updates past the current manifest range and rewrites the manifest\nspecifier to the resolved version.",[37,225,226],{"id":30},"Dedupe",[41,228,230],{"className":43,"code":229,"language":45,"meta":46,"style":46},"scpm dedupe\nscpm dedupe --check\n",[18,231,232,237],{"__ignoreMap":46},[50,233,234],{"class":52,"line":53},[50,235,236],{},"scpm dedupe\n",[50,238,239],{"class":52,"line":59},[50,240,241],{},"scpm dedupe --check\n",[14,243,244,246,247,250],{},[18,245,30],{}," re-resolves the lockfile to collapse duplicate versions where ranges\nallow it. ",[18,248,249],{},"--check"," exits non-zero when the lockfile would change.",[37,252,253],{"id":34},"Prune",[41,255,257],{"className":43,"code":256,"language":45,"meta":46,"style":46},"scpm prune\nscpm prune --prod\nscpm prune --no-optional\n",[18,258,259,264,269],{"__ignoreMap":46},[50,260,261],{"class":52,"line":53},[50,262,263],{},"scpm prune\n",[50,265,266],{"class":52,"line":59},[50,267,268],{},"scpm prune --prod\n",[50,270,271],{"class":52,"line":65},[50,272,273],{},"scpm prune --no-optional\n",[14,275,276,278,279,281,282,285],{},[18,277,34],{}," removes extraneous packages from ",[18,280,94],{},", including stale\nvirtual-store entries and dangling ",[18,283,284],{},".bin"," links.",[14,287,288,289,291,292,295,296,95],{},"It reads the lockfile to decide what should remain installed, but it does not\nmodify ",[18,290,171],{}," or the lockfile. Use ",[18,293,294],{},"scpm store prune"," instead when you\nwant to clean unreferenced files from the global store printed by\n",[18,297,298],{},"scpm store path",[300,301,302],"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);}",{"title":46,"searchDepth":59,"depth":59,"links":304},[305,306,307,308,309],{"id":20,"depth":59,"text":39},{"id":24,"depth":59,"text":174},{"id":27,"depth":59,"text":197},{"id":30,"depth":59,"text":226},{"id":34,"depth":59,"text":253},"Use add, remove, update, dedupe, and prune to change a project's\ndependency graph.","md",{},true,"\u002Fdocs\u002Fpackage-manager\u002Fdependencies",{"title":5,"description":310},"docs\u002Fpackage-manager\u002Fdependencies","ZuQBbDnSyclMeVohmYNeRSYK5erCinFmMTiw3K14yMU",[319,322,325,328,331,334,337,340,343,346,349,352,355,358,361,364,367,370,373,376,379,382,385,388,391,394,397,400,403,406,409,412,415,418,421,424,427,430,433,436,439,442,445,448,451,454,457,460,463,466,469,472,475,478,481,484,487,490,493,496,499,502,505,508,511,514,517,520,523,526,529,532,535,538,541,544,547,550,552,554,557,560,563,566,569,572,575,578,581,584,587,590,593,596,599,602,603,606,609,612,615,618,621,624,627,630,633,636,639,642,645,648,651,654,657,660],{"path":320,"title":321},"\u002Fdocs\u002Fbenchmarks","Benchmarks",{"path":323,"title":324},"\u002Fdocs\u002Fbun-users","For bun users",{"path":326,"title":327},"\u002Fdocs\u002Fcli\u002Fadd","scpm add",{"path":329,"title":330},"\u002Fdocs\u002Fcli\u002Fapprove-builds","scpm approve-builds",{"path":332,"title":333},"\u002Fdocs\u002Fcli\u002Faudit","scpm audit",{"path":335,"title":336},"\u002Fdocs\u002Fcli\u002Fbin","scpm bin",{"path":338,"title":339},"\u002Fdocs\u002Fcli\u002Fcache","scpm cache",{"path":341,"title":342},"\u002Fdocs\u002Fcli\u002Fcache\u002Fdelete","scpm cache delete",{"path":344,"title":345},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist","scpm cache list",{"path":347,"title":348},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist-registries","scpm cache list-registries",{"path":350,"title":351},"\u002Fdocs\u002Fcli\u002Fcache\u002Fprune","scpm cache prune",{"path":353,"title":354},"\u002Fdocs\u002Fcli\u002Fcache\u002Fview","scpm cache view",{"path":356,"title":357},"\u002Fdocs\u002Fcli\u002Fcat-file","scpm cat-file",{"path":359,"title":360},"\u002Fdocs\u002Fcli\u002Fcat-index","scpm cat-index",{"path":362,"title":363},"\u002Fdocs\u002Fcli\u002Fcheck","scpm check",{"path":365,"title":366},"\u002Fdocs\u002Fcli\u002Fci","scpm ci",{"path":368,"title":369},"\u002Fdocs\u002Fcli\u002Fclean","scpm clean",{"path":371,"title":372},"\u002Fdocs\u002Fcli\u002Fcompletion","scpm completion",{"path":374,"title":375},"\u002Fdocs\u002Fcli\u002Fconfig","scpm config",{"path":377,"title":378},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fdelete","scpm config delete",{"path":380,"title":381},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fexplain","scpm config explain",{"path":383,"title":384},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ffind","scpm config find",{"path":386,"title":387},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fget","scpm config get",{"path":389,"title":390},"\u002Fdocs\u002Fcli\u002Fconfig\u002Flist","scpm config list",{"path":392,"title":393},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fset","scpm config set",{"path":395,"title":396},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ftui","scpm config tui",{"path":398,"title":399},"\u002Fdocs\u002Fcli\u002Fcreate","scpm create",{"path":401,"title":402},"\u002Fdocs\u002Fcli\u002Fdedupe","scpm dedupe",{"path":404,"title":405},"\u002Fdocs\u002Fcli\u002Fdeploy","scpm deploy",{"path":407,"title":408},"\u002Fdocs\u002Fcli\u002Fdeprecate","scpm deprecate",{"path":410,"title":411},"\u002Fdocs\u002Fcli\u002Fdeprecations","scpm deprecations",{"path":413,"title":414},"\u002Fdocs\u002Fcli\u002Fdiag","scpm diag",{"path":416,"title":417},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fanalyze","scpm diag analyze",{"path":419,"title":420},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fcompare","scpm diag compare",{"path":422,"title":423},"\u002Fdocs\u002Fcli\u002Fdist-tag","scpm dist-tag",{"path":425,"title":426},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fadd","scpm dist-tag add",{"path":428,"title":429},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fls","scpm dist-tag ls",{"path":431,"title":432},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Frm","scpm dist-tag rm",{"path":434,"title":435},"\u002Fdocs\u002Fcli\u002Fdlx","scpm dlx",{"path":437,"title":438},"\u002Fdocs\u002Fcli\u002Fdoctor","scpm doctor",{"path":440,"title":441},"\u002Fdocs\u002Fcli\u002Fexec","scpm exec",{"path":443,"title":444},"\u002Fdocs\u002Fcli\u002Ffetch","scpm fetch",{"path":446,"title":447},"\u002Fdocs\u002Fcli\u002Ffind-hash","scpm find-hash",{"path":449,"title":450},"\u002Fdocs\u002Fcli\u002Fignored-builds","scpm ignored-builds",{"path":452,"title":453},"\u002Fdocs\u002Fcli\u002Fimport","scpm import",{"path":455,"title":456},"\u002Fdocs\u002Fcli","scpm",{"path":458,"title":459},"\u002Fdocs\u002Fcli\u002Finit","scpm init",{"path":461,"title":462},"\u002Fdocs\u002Fcli\u002Finstall","scpm install",{"path":464,"title":465},"\u002Fdocs\u002Fcli\u002Flicenses","scpm licenses",{"path":467,"title":468},"\u002Fdocs\u002Fcli\u002Flink","scpm link",{"path":470,"title":471},"\u002Fdocs\u002Fcli\u002Flist","scpm list",{"path":473,"title":474},"\u002Fdocs\u002Fcli\u002Flogin","scpm login",{"path":476,"title":477},"\u002Fdocs\u002Fcli\u002Flogout","scpm logout",{"path":479,"title":480},"\u002Fdocs\u002Fcli\u002Foutdated","scpm outdated",{"path":482,"title":483},"\u002Fdocs\u002Fcli\u002Fpack","scpm pack",{"path":485,"title":486},"\u002Fdocs\u002Fcli\u002Fpatch","scpm patch",{"path":488,"title":489},"\u002Fdocs\u002Fcli\u002Fpatch-commit","scpm patch-commit",{"path":491,"title":492},"\u002Fdocs\u002Fcli\u002Fpatch-remove","scpm patch-remove",{"path":494,"title":495},"\u002Fdocs\u002Fcli\u002Fpeers","scpm peers",{"path":497,"title":498},"\u002Fdocs\u002Fcli\u002Fpeers\u002Fcheck","scpm peers check",{"path":500,"title":501},"\u002Fdocs\u002Fcli\u002Fprune","scpm prune",{"path":503,"title":504},"\u002Fdocs\u002Fcli\u002Fpublish","scpm publish",{"path":506,"title":507},"\u002Fdocs\u002Fcli\u002Fpurge","scpm purge",{"path":509,"title":510},"\u002Fdocs\u002Fcli\u002Fquery","scpm query",{"path":512,"title":513},"\u002Fdocs\u002Fcli\u002Frebuild","scpm rebuild",{"path":515,"title":516},"\u002Fdocs\u002Fcli\u002Frecursive","scpm recursive",{"path":518,"title":519},"\u002Fdocs\u002Fcli\u002Fremove","scpm remove",{"path":521,"title":522},"\u002Fdocs\u002Fcli\u002Frestart","scpm restart",{"path":524,"title":525},"\u002Fdocs\u002Fcli\u002Froot","scpm root",{"path":527,"title":528},"\u002Fdocs\u002Fcli\u002Frun","scpm run",{"path":530,"title":531},"\u002Fdocs\u002Fcli\u002Fsbom","scpm sbom",{"path":533,"title":534},"\u002Fdocs\u002Fcli\u002Fsponsors","scpm sponsors",{"path":536,"title":537},"\u002Fdocs\u002Fcli\u002Fstage","scpm stage",{"path":539,"title":540},"\u002Fdocs\u002Fcli\u002Fstart","scpm start",{"path":542,"title":543},"\u002Fdocs\u002Fcli\u002Fstop","scpm stop",{"path":545,"title":546},"\u002Fdocs\u002Fcli\u002Fstore","scpm store",{"path":548,"title":549},"\u002Fdocs\u002Fcli\u002Fstore\u002Fadd","scpm store add",{"path":551,"title":298},"\u002Fdocs\u002Fcli\u002Fstore\u002Fpath",{"path":553,"title":294},"\u002Fdocs\u002Fcli\u002Fstore\u002Fprune",{"path":555,"title":556},"\u002Fdocs\u002Fcli\u002Fstore\u002Fstatus","scpm store status",{"path":558,"title":559},"\u002Fdocs\u002Fcli\u002Ftest","scpm test",{"path":561,"title":562},"\u002Fdocs\u002Fcli\u002Fundeprecate","scpm undeprecate",{"path":564,"title":565},"\u002Fdocs\u002Fcli\u002Funlink","scpm unlink",{"path":567,"title":568},"\u002Fdocs\u002Fcli\u002Funpublish","scpm unpublish",{"path":570,"title":571},"\u002Fdocs\u002Fcli\u002Fupdate","scpm update",{"path":573,"title":574},"\u002Fdocs\u002Fcli\u002Fversion","scpm version",{"path":576,"title":577},"\u002Fdocs\u002Fcli\u002Fview","scpm view",{"path":579,"title":580},"\u002Fdocs\u002Fcli\u002Fwhy","scpm why",{"path":582,"title":583},"\u002Fdocs\u002Ferror-codes","Error and warning codes",{"path":585,"title":586},"\u002Fdocs\u002Fgetting-started","Getting Started",{"path":588,"title":589},"\u002Fdocs\u002Fguide","Guide",{"path":591,"title":592},"\u002Fdocs","SCPM Documentation",{"path":594,"title":595},"\u002Fdocs\u002Finstallation","Installation",{"path":597,"title":598},"\u002Fdocs\u002Fnpm-users","For npm users",{"path":600,"title":601},"\u002Fdocs\u002Fpackage-manager\u002Fconfiguration","Configuration",{"path":314,"title":5},{"path":604,"title":605},"\u002Fdocs\u002Fpackage-manager\u002Fglobal-virtual-store","Global virtual store",{"path":607,"title":608},"\u002Fdocs\u002Fpackage-manager\u002Finstall","Install dependencies",{"path":610,"title":611},"\u002Fdocs\u002Fpackage-manager\u002Fjailed-builds","Jailed dependency builds",{"path":613,"title":614},"\u002Fdocs\u002Fpackage-manager\u002Flifecycle-scripts","Lifecycle scripts",{"path":616,"title":617},"\u002Fdocs\u002Fpackage-manager\u002Flockfiles","Lockfiles",{"path":619,"title":620},"\u002Fdocs\u002Fpackage-manager\u002Fnode-modules","node_modules layout",{"path":622,"title":623},"\u002Fdocs\u002Fpackage-manager\u002Fpublishing","Publishing",{"path":625,"title":626},"\u002Fdocs\u002Fpackage-manager\u002Fregistry-auth","Registry and auth",{"path":628,"title":629},"\u002Fdocs\u002Fpackage-manager\u002Fscripts","Run scripts and binaries",{"path":631,"title":632},"\u002Fdocs\u002Fpackage-manager\u002Fsecurity-scanner","Security scanner",{"path":634,"title":635},"\u002Fdocs\u002Fpackage-manager\u002Fworkspaces","Workspaces",{"path":637,"title":638},"\u002Fdocs\u002Fpnpm-users","For pnpm users",{"path":640,"title":641},"\u002Fdocs\u002Fsecurity","Security",{"path":643,"title":644},"\u002Fdocs\u002Fsettings\u002Fcli","CLI Settings",{"path":646,"title":647},"\u002Fdocs\u002Fsettings\u002Fenv","Environment Settings",{"path":649,"title":650},"\u002Fdocs\u002Fsettings","Settings",{"path":652,"title":653},"\u002Fdocs\u002Fsettings\u002Fnpmrc",".npmrc Settings",{"path":655,"title":656},"\u002Fdocs\u002Fsettings\u002Fworkspace-yaml","Workspace YAML Settings",{"path":658,"title":659},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting",{"path":661,"title":662},"\u002Fdocs\u002Fyarn-users","For yarn users",1780584396926]