[{"data":1,"prerenderedAt":742},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fpackage-manager\u002Fworkspaces":3,"docs-pages":395},{"id":4,"title":5,"body":6,"description":387,"extension":388,"meta":389,"navigation":390,"path":391,"seo":392,"stem":393,"__hash__":394},"docs\u002Fdocs\u002Fpackage-manager\u002Fworkspaces.md","Workspaces",{"type":7,"value":8,"toc":380},"minimark",[9,13,26,66,71,129,132,136,173,176,227,231,246,252,256,268,313,358,362,371,376],[10,11,5],"h1",{"id":12},"workspaces",[14,15,16,17,21,22,25],"p",{},"scpm discovers workspaces from ",[18,19,20],"code",{},"scpm-workspace.yaml"," and links workspace\npackages into the isolated dependency graph. Existing pnpm projects can keep\n",[18,23,24],{},"pnpm-workspace.yaml"," during migration; scpm reads it as the source for the\nscpm-owned manifest.",[27,28,33],"pre",{"className":29,"code":30,"language":31,"meta":32,"style":32},"language-yaml shiki shiki-themes github-light github-dark","packages:\n  - \"packages\u002F*\"\n  - \"apps\u002F*\"\n","yaml","",[18,34,35,48,58],{"__ignoreMap":32},[36,37,40,44],"span",{"class":38,"line":39},"line",1,[36,41,43],{"class":42},"s9eBZ","packages",[36,45,47],{"class":46},"sVt8B",":\n",[36,49,51,54],{"class":38,"line":50},2,[36,52,53],{"class":46},"  - ",[36,55,57],{"class":56},"sZZnC","\"packages\u002F*\"\n",[36,59,61,63],{"class":38,"line":60},3,[36,62,53],{"class":46},[36,64,65],{"class":56},"\"apps\u002F*\"\n",[67,68,70],"h2",{"id":69},"workspace-protocol","Workspace protocol",[27,72,76],{"className":73,"code":74,"language":75,"meta":32,"style":32},"language-json shiki shiki-themes github-light github-dark","{\n  \"dependencies\": {\n    \"@acme\u002Fui\": \"workspace:*\",\n    \"@acme\u002Fconfig\": \"workspace:^\"\n  }\n}\n","json",[18,77,78,83,92,106,117,123],{"__ignoreMap":32},[36,79,80],{"class":38,"line":39},[36,81,82],{"class":46},"{\n",[36,84,85,89],{"class":38,"line":50},[36,86,88],{"class":87},"sj4cs","  \"dependencies\"",[36,90,91],{"class":46},": {\n",[36,93,94,97,100,103],{"class":38,"line":60},[36,95,96],{"class":87},"    \"@acme\u002Fui\"",[36,98,99],{"class":46},": ",[36,101,102],{"class":56},"\"workspace:*\"",[36,104,105],{"class":46},",\n",[36,107,109,112,114],{"class":38,"line":108},4,[36,110,111],{"class":87},"    \"@acme\u002Fconfig\"",[36,113,99],{"class":46},[36,115,116],{"class":56},"\"workspace:^\"\n",[36,118,120],{"class":38,"line":119},5,[36,121,122],{"class":46},"  }\n",[36,124,126],{"class":38,"line":125},6,[36,127,128],{"class":46},"}\n",[14,130,131],{},"Workspace dependencies are linked to local packages during development and\nconverted to concrete versions for publishing\u002Fdeploy flows.",[67,133,135],{"id":134},"filters","Filters",[27,137,141],{"className":138,"code":139,"language":140,"meta":32,"style":32},"language-sh shiki shiki-themes github-light github-dark","scpm -F api run build\nscpm -F '@acme\u002F*' test\nscpm -F '.\u002Fapps\u002Fweb' install\nscpm -F 'api...' run build\nscpm -F '...web' run test\nscpm -F '!legacy' -r run lint\n","sh",[18,142,143,148,153,158,163,168],{"__ignoreMap":32},[36,144,145],{"class":38,"line":39},[36,146,147],{},"scpm -F api run build\n",[36,149,150],{"class":38,"line":50},[36,151,152],{},"scpm -F '@acme\u002F*' test\n",[36,154,155],{"class":38,"line":60},[36,156,157],{},"scpm -F '.\u002Fapps\u002Fweb' install\n",[36,159,160],{"class":38,"line":108},[36,161,162],{},"scpm -F 'api...' run build\n",[36,164,165],{"class":38,"line":119},[36,166,167],{},"scpm -F '...web' run test\n",[36,169,170],{"class":38,"line":125},[36,171,172],{},"scpm -F '!legacy' -r run lint\n",[14,174,175],{},"Supported selector forms:",[177,178,179,183,190,196,206,215,221],"ul",{},[180,181,182],"li",{},"Exact package names.",[180,184,185,186,189],{},"Globs such as ",[18,187,188],{},"@acme\u002F*",".",[180,191,192,193,189],{},"Paths such as ",[18,194,195],{},".\u002Fapps\u002Fweb",[180,197,198,199,202,203,189],{},"Dependency graph selectors such as ",[18,200,201],{},"api..."," and ",[18,204,205],{},"api^...",[180,207,208,209,202,212,189],{},"Dependent graph selectors such as ",[18,210,211],{},"...web",[18,213,214],{},"...^web",[180,216,217,218,189],{},"Git-ref selectors such as ",[18,219,220],{},"[origin\u002Fmain]",[180,222,223,224,189],{},"Exclusions such as ",[18,225,226],{},"!legacy",[67,228,230],{"id":229},"recursive-mode","Recursive mode",[27,232,234],{"className":138,"code":233,"language":140,"meta":32,"style":32},"scpm -r run build\nscpm -r list --depth 0\n",[18,235,236,241],{"__ignoreMap":32},[36,237,238],{"class":38,"line":39},[36,239,240],{},"scpm -r run build\n",[36,242,243],{"class":38,"line":50},[36,244,245],{},"scpm -r list --depth 0\n",[14,247,248,251],{},[18,249,250],{},"-r"," runs over every workspace package unless an explicit filter is present.",[67,253,255],{"id":254},"catalogs","Catalogs",[14,257,258,259,202,262,265,266,189],{},"scpm resolves ",[18,260,261],{},"catalog:",[18,263,264],{},"catalog:\u003Cname>"," from ",[18,267,20],{},[27,269,271],{"className":29,"code":270,"language":31,"meta":32,"style":32},"catalog:\n  react: ^19.0.0\ncatalogs:\n  test:\n    vitest: ^3.0.0\n",[18,272,273,280,290,296,303],{"__ignoreMap":32},[36,274,275,278],{"class":38,"line":39},[36,276,277],{"class":42},"catalog",[36,279,47],{"class":46},[36,281,282,285,287],{"class":38,"line":50},[36,283,284],{"class":42},"  react",[36,286,99],{"class":46},[36,288,289],{"class":56},"^19.0.0\n",[36,291,292,294],{"class":38,"line":60},[36,293,254],{"class":42},[36,295,47],{"class":46},[36,297,298,301],{"class":38,"line":108},[36,299,300],{"class":42},"  test",[36,302,47],{"class":46},[36,304,305,308,310],{"class":38,"line":119},[36,306,307],{"class":42},"    vitest",[36,309,99],{"class":46},[36,311,312],{"class":56},"^3.0.0\n",[27,314,316],{"className":73,"code":315,"language":75,"meta":32,"style":32},"{\n  \"dependencies\": {\n    \"react\": \"catalog:\",\n    \"vitest\": \"catalog:test\"\n  }\n}\n",[18,317,318,322,328,340,350,354],{"__ignoreMap":32},[36,319,320],{"class":38,"line":39},[36,321,82],{"class":46},[36,323,324,326],{"class":38,"line":50},[36,325,88],{"class":87},[36,327,91],{"class":46},[36,329,330,333,335,338],{"class":38,"line":60},[36,331,332],{"class":87},"    \"react\"",[36,334,99],{"class":46},[36,336,337],{"class":56},"\"catalog:\"",[36,339,105],{"class":46},[36,341,342,345,347],{"class":38,"line":108},[36,343,344],{"class":87},"    \"vitest\"",[36,346,99],{"class":46},[36,348,349],{"class":56},"\"catalog:test\"\n",[36,351,352],{"class":38,"line":119},[36,353,122],{"class":46},[36,355,356],{"class":38,"line":125},[36,357,128],{"class":46},[67,359,361],{"id":360},"deploy","Deploy",[27,363,365],{"className":138,"code":364,"language":140,"meta":32,"style":32},"scpm -F api deploy dist\u002Fapi\n",[18,366,367],{"__ignoreMap":32},[36,368,369],{"class":38,"line":39},[36,370,364],{},[14,372,373,375],{},[18,374,360],{}," copies the selected workspace package's publishable files, rewrites\nworkspace dependencies to concrete versions, and installs dependencies in the\ntarget directory.",[377,378,379],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":32,"searchDepth":50,"depth":50,"links":381},[382,383,384,385,386],{"id":69,"depth":50,"text":70},{"id":134,"depth":50,"text":135},{"id":229,"depth":50,"text":230},{"id":254,"depth":50,"text":255},{"id":360,"depth":50,"text":361},"scpm discovers workspaces from scpm-workspace.yaml and links workspace\npackages into the isolated dependency graph. Existing pnpm projects can keep\npnpm-workspace.yaml during migration; scpm reads it as the source for the\nscpm-owned manifest.","md",{},true,"\u002Fdocs\u002Fpackage-manager\u002Fworkspaces",{"title":5,"description":387},"docs\u002Fpackage-manager\u002Fworkspaces","VmmqJ3uy-JW4uYSeSI_dZ4dVWfpGjz5D8fDi97rg40c",[396,399,402,405,408,411,414,417,420,423,426,429,432,435,438,441,444,447,450,453,456,459,462,465,468,471,474,477,480,483,486,489,492,495,498,501,504,507,510,513,516,519,522,525,528,531,534,537,540,543,546,549,552,555,558,561,564,567,570,573,576,579,582,585,588,591,594,597,600,603,606,609,612,615,618,621,624,627,630,633,636,639,642,645,648,651,654,657,660,663,666,669,672,675,678,681,684,687,690,693,696,699,702,705,708,711,714,715,718,721,724,727,730,733,736,739],{"path":397,"title":398},"\u002Fdocs\u002Fbenchmarks","Benchmarks",{"path":400,"title":401},"\u002Fdocs\u002Fbun-users","For bun users",{"path":403,"title":404},"\u002Fdocs\u002Fcli\u002Fadd","scpm add",{"path":406,"title":407},"\u002Fdocs\u002Fcli\u002Fapprove-builds","scpm approve-builds",{"path":409,"title":410},"\u002Fdocs\u002Fcli\u002Faudit","scpm audit",{"path":412,"title":413},"\u002Fdocs\u002Fcli\u002Fbin","scpm bin",{"path":415,"title":416},"\u002Fdocs\u002Fcli\u002Fcache","scpm cache",{"path":418,"title":419},"\u002Fdocs\u002Fcli\u002Fcache\u002Fdelete","scpm cache delete",{"path":421,"title":422},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist","scpm cache list",{"path":424,"title":425},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist-registries","scpm cache list-registries",{"path":427,"title":428},"\u002Fdocs\u002Fcli\u002Fcache\u002Fprune","scpm cache prune",{"path":430,"title":431},"\u002Fdocs\u002Fcli\u002Fcache\u002Fview","scpm cache view",{"path":433,"title":434},"\u002Fdocs\u002Fcli\u002Fcat-file","scpm cat-file",{"path":436,"title":437},"\u002Fdocs\u002Fcli\u002Fcat-index","scpm cat-index",{"path":439,"title":440},"\u002Fdocs\u002Fcli\u002Fcheck","scpm check",{"path":442,"title":443},"\u002Fdocs\u002Fcli\u002Fci","scpm ci",{"path":445,"title":446},"\u002Fdocs\u002Fcli\u002Fclean","scpm clean",{"path":448,"title":449},"\u002Fdocs\u002Fcli\u002Fcompletion","scpm completion",{"path":451,"title":452},"\u002Fdocs\u002Fcli\u002Fconfig","scpm config",{"path":454,"title":455},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fdelete","scpm config delete",{"path":457,"title":458},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fexplain","scpm config explain",{"path":460,"title":461},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ffind","scpm config find",{"path":463,"title":464},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fget","scpm config get",{"path":466,"title":467},"\u002Fdocs\u002Fcli\u002Fconfig\u002Flist","scpm config list",{"path":469,"title":470},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fset","scpm config set",{"path":472,"title":473},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ftui","scpm config tui",{"path":475,"title":476},"\u002Fdocs\u002Fcli\u002Fcreate","scpm create",{"path":478,"title":479},"\u002Fdocs\u002Fcli\u002Fdedupe","scpm dedupe",{"path":481,"title":482},"\u002Fdocs\u002Fcli\u002Fdeploy","scpm deploy",{"path":484,"title":485},"\u002Fdocs\u002Fcli\u002Fdeprecate","scpm deprecate",{"path":487,"title":488},"\u002Fdocs\u002Fcli\u002Fdeprecations","scpm deprecations",{"path":490,"title":491},"\u002Fdocs\u002Fcli\u002Fdiag","scpm diag",{"path":493,"title":494},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fanalyze","scpm diag analyze",{"path":496,"title":497},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fcompare","scpm diag compare",{"path":499,"title":500},"\u002Fdocs\u002Fcli\u002Fdist-tag","scpm dist-tag",{"path":502,"title":503},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fadd","scpm dist-tag add",{"path":505,"title":506},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fls","scpm dist-tag ls",{"path":508,"title":509},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Frm","scpm dist-tag rm",{"path":511,"title":512},"\u002Fdocs\u002Fcli\u002Fdlx","scpm dlx",{"path":514,"title":515},"\u002Fdocs\u002Fcli\u002Fdoctor","scpm doctor",{"path":517,"title":518},"\u002Fdocs\u002Fcli\u002Fexec","scpm exec",{"path":520,"title":521},"\u002Fdocs\u002Fcli\u002Ffetch","scpm fetch",{"path":523,"title":524},"\u002Fdocs\u002Fcli\u002Ffind-hash","scpm find-hash",{"path":526,"title":527},"\u002Fdocs\u002Fcli\u002Fignored-builds","scpm ignored-builds",{"path":529,"title":530},"\u002Fdocs\u002Fcli\u002Fimport","scpm import",{"path":532,"title":533},"\u002Fdocs\u002Fcli","scpm",{"path":535,"title":536},"\u002Fdocs\u002Fcli\u002Finit","scpm init",{"path":538,"title":539},"\u002Fdocs\u002Fcli\u002Finstall","scpm install",{"path":541,"title":542},"\u002Fdocs\u002Fcli\u002Flicenses","scpm licenses",{"path":544,"title":545},"\u002Fdocs\u002Fcli\u002Flink","scpm link",{"path":547,"title":548},"\u002Fdocs\u002Fcli\u002Flist","scpm list",{"path":550,"title":551},"\u002Fdocs\u002Fcli\u002Flogin","scpm login",{"path":553,"title":554},"\u002Fdocs\u002Fcli\u002Flogout","scpm logout",{"path":556,"title":557},"\u002Fdocs\u002Fcli\u002Foutdated","scpm outdated",{"path":559,"title":560},"\u002Fdocs\u002Fcli\u002Fpack","scpm pack",{"path":562,"title":563},"\u002Fdocs\u002Fcli\u002Fpatch","scpm patch",{"path":565,"title":566},"\u002Fdocs\u002Fcli\u002Fpatch-commit","scpm patch-commit",{"path":568,"title":569},"\u002Fdocs\u002Fcli\u002Fpatch-remove","scpm patch-remove",{"path":571,"title":572},"\u002Fdocs\u002Fcli\u002Fpeers","scpm peers",{"path":574,"title":575},"\u002Fdocs\u002Fcli\u002Fpeers\u002Fcheck","scpm peers check",{"path":577,"title":578},"\u002Fdocs\u002Fcli\u002Fprune","scpm prune",{"path":580,"title":581},"\u002Fdocs\u002Fcli\u002Fpublish","scpm publish",{"path":583,"title":584},"\u002Fdocs\u002Fcli\u002Fpurge","scpm purge",{"path":586,"title":587},"\u002Fdocs\u002Fcli\u002Fquery","scpm query",{"path":589,"title":590},"\u002Fdocs\u002Fcli\u002Frebuild","scpm rebuild",{"path":592,"title":593},"\u002Fdocs\u002Fcli\u002Frecursive","scpm recursive",{"path":595,"title":596},"\u002Fdocs\u002Fcli\u002Fremove","scpm remove",{"path":598,"title":599},"\u002Fdocs\u002Fcli\u002Frestart","scpm restart",{"path":601,"title":602},"\u002Fdocs\u002Fcli\u002Froot","scpm root",{"path":604,"title":605},"\u002Fdocs\u002Fcli\u002Frun","scpm run",{"path":607,"title":608},"\u002Fdocs\u002Fcli\u002Fsbom","scpm sbom",{"path":610,"title":611},"\u002Fdocs\u002Fcli\u002Fsponsors","scpm sponsors",{"path":613,"title":614},"\u002Fdocs\u002Fcli\u002Fstage","scpm stage",{"path":616,"title":617},"\u002Fdocs\u002Fcli\u002Fstart","scpm start",{"path":619,"title":620},"\u002Fdocs\u002Fcli\u002Fstop","scpm stop",{"path":622,"title":623},"\u002Fdocs\u002Fcli\u002Fstore","scpm store",{"path":625,"title":626},"\u002Fdocs\u002Fcli\u002Fstore\u002Fadd","scpm store add",{"path":628,"title":629},"\u002Fdocs\u002Fcli\u002Fstore\u002Fpath","scpm store path",{"path":631,"title":632},"\u002Fdocs\u002Fcli\u002Fstore\u002Fprune","scpm store prune",{"path":634,"title":635},"\u002Fdocs\u002Fcli\u002Fstore\u002Fstatus","scpm store status",{"path":637,"title":638},"\u002Fdocs\u002Fcli\u002Ftest","scpm test",{"path":640,"title":641},"\u002Fdocs\u002Fcli\u002Fundeprecate","scpm undeprecate",{"path":643,"title":644},"\u002Fdocs\u002Fcli\u002Funlink","scpm unlink",{"path":646,"title":647},"\u002Fdocs\u002Fcli\u002Funpublish","scpm unpublish",{"path":649,"title":650},"\u002Fdocs\u002Fcli\u002Fupdate","scpm update",{"path":652,"title":653},"\u002Fdocs\u002Fcli\u002Fversion","scpm version",{"path":655,"title":656},"\u002Fdocs\u002Fcli\u002Fview","scpm view",{"path":658,"title":659},"\u002Fdocs\u002Fcli\u002Fwhy","scpm why",{"path":661,"title":662},"\u002Fdocs\u002Ferror-codes","Error and warning codes",{"path":664,"title":665},"\u002Fdocs\u002Fgetting-started","Getting Started",{"path":667,"title":668},"\u002Fdocs\u002Fguide","Guide",{"path":670,"title":671},"\u002Fdocs","SCPM Documentation",{"path":673,"title":674},"\u002Fdocs\u002Finstallation","Installation",{"path":676,"title":677},"\u002Fdocs\u002Fnpm-users","For npm users",{"path":679,"title":680},"\u002Fdocs\u002Fpackage-manager\u002Fconfiguration","Configuration",{"path":682,"title":683},"\u002Fdocs\u002Fpackage-manager\u002Fdependencies","Manage dependencies",{"path":685,"title":686},"\u002Fdocs\u002Fpackage-manager\u002Fglobal-virtual-store","Global virtual store",{"path":688,"title":689},"\u002Fdocs\u002Fpackage-manager\u002Finstall","Install dependencies",{"path":691,"title":692},"\u002Fdocs\u002Fpackage-manager\u002Fjailed-builds","Jailed dependency builds",{"path":694,"title":695},"\u002Fdocs\u002Fpackage-manager\u002Flifecycle-scripts","Lifecycle scripts",{"path":697,"title":698},"\u002Fdocs\u002Fpackage-manager\u002Flockfiles","Lockfiles",{"path":700,"title":701},"\u002Fdocs\u002Fpackage-manager\u002Fnode-modules","node_modules layout",{"path":703,"title":704},"\u002Fdocs\u002Fpackage-manager\u002Fpublishing","Publishing",{"path":706,"title":707},"\u002Fdocs\u002Fpackage-manager\u002Fregistry-auth","Registry and auth",{"path":709,"title":710},"\u002Fdocs\u002Fpackage-manager\u002Fscripts","Run scripts and binaries",{"path":712,"title":713},"\u002Fdocs\u002Fpackage-manager\u002Fsecurity-scanner","Security scanner",{"path":391,"title":5},{"path":716,"title":717},"\u002Fdocs\u002Fpnpm-users","For pnpm users",{"path":719,"title":720},"\u002Fdocs\u002Fsecurity","Security",{"path":722,"title":723},"\u002Fdocs\u002Fsettings\u002Fcli","CLI Settings",{"path":725,"title":726},"\u002Fdocs\u002Fsettings\u002Fenv","Environment Settings",{"path":728,"title":729},"\u002Fdocs\u002Fsettings","Settings",{"path":731,"title":732},"\u002Fdocs\u002Fsettings\u002Fnpmrc",".npmrc Settings",{"path":734,"title":735},"\u002Fdocs\u002Fsettings\u002Fworkspace-yaml","Workspace YAML Settings",{"path":737,"title":738},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting",{"path":740,"title":741},"\u002Fdocs\u002Fyarn-users","For yarn users",1780584396927]