[{"data":1,"prerenderedAt":580},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fguide":3,"docs-pages":253},{"id":4,"title":5,"body":6,"description":245,"extension":246,"meta":247,"navigation":248,"path":249,"seo":250,"stem":251,"__hash__":252},"docs\u002Fdocs\u002Fguide.md","Guide",{"type":7,"value":8,"toc":238},"minimark",[9,13,22,47,52,159,163,166,195,208,212],[10,11,5],"h1",{"id":12},"guide",[14,15,16,17,21],"p",{},"SCPM is a package manager for Node.js projects. It uses a pnpm-style isolated\n",[18,19,20],"code",{},"node_modules"," layout for fast, disk-efficient installs.",[14,23,24,25,28,29,28,32,28,35,38,39,42,43,46],{},"Existing projects keep their lockfile format. SCPM reads and writes\n",[18,26,27],{},"pnpm-lock.yaml",", ",[18,30,31],{},"package-lock.json",[18,33,34],{},"npm-shrinkwrap.json",[18,36,37],{},"yarn.lock",", and\n",[18,40,41],{},"bun.lock"," in place. New projects without a supported lockfile start with\n",[18,44,45],{},"scpm-lock.yaml",".",[48,49,51],"h2",{"id":50},"start-here","Start here",[53,54,55,64,86,108,115,127,149],"ul",{},[56,57,58,63],"li",{},[59,60,62],"a",{"href":61},"\u002Fdocs\u002Finstallation","Installation"," shows the local source install path and\nrelease-channel scaffolds.",[56,65,66,67,28,71,75,76,80,81,85],{},"For existing projects, see the ",[59,68,70],{"href":69},"\u002Fdocs\u002Fpnpm-users","pnpm",[59,72,74],{"href":73},"\u002Fdocs\u002Fnpm-users","npm",",\n",[59,77,79],{"href":78},"\u002Fdocs\u002Fyarn-users","yarn",", or ",[59,82,84],{"href":83},"\u002Fdocs\u002Fbun-users","bun"," guide.",[56,87,88,92,93,28,96,99,100,103,104,107],{},[59,89,91],{"href":90},"\u002Fdocs\u002Fpackage-manager\u002Fscripts","Run scripts and binaries"," covers the normal\nlocal workflow. ",[18,94,95],{},"scpmr \u003Cscript>",[18,97,98],{},"scpm test",", and ",[18,101,102],{},"scpm exec \u003Cbin>"," install\nfirst when dependencies are stale; ",[18,105,106],{},"scpmx \u003Cpkg>"," handles one-off tools.",[56,109,110,114],{},[59,111,113],{"href":112},"\u002Fdocs\u002Fpackage-manager\u002Finstall","Install dependencies"," covers explicit install\nwork: setup-only installs, CI mode, production installs, offline installs,\nand lockfile modes.",[56,116,117,121,122,126],{},[59,118,120],{"href":119},"\u002Fdocs\u002Fpackage-manager\u002Flifecycle-scripts","Lifecycle scripts"," and\n",[59,123,125],{"href":124},"\u002Fdocs\u002Fpackage-manager\u002Fjailed-builds","Jailed builds"," cover dependency build\napproval, jailed execution, and package-specific jail permissions.",[56,128,129,133,134,75,137,28,140,28,143,99,146,46],{},[59,130,132],{"href":131},"\u002Fdocs\u002Fpackage-manager\u002Fdependencies","Manage dependencies"," covers ",[18,135,136],{},"add",[18,138,139],{},"remove",[18,141,142],{},"update",[18,144,145],{},"dedupe",[18,147,148],{},"prune",[56,150,151,133,155,158],{},[59,152,154],{"href":153},"\u002Fdocs\u002Fpackage-manager\u002Fworkspaces","Workspaces",[18,156,157],{},"scpm-workspace.yaml",",\nworkspace linking, filters, recursive runs, catalogs, and deploys.",[48,160,162],{"id":161},"package-manager-model","Package-manager model",[14,164,165],{},"The imported baseline follows Aube's package-manager architecture:",[53,167,168,174,177,180,192],{},[56,169,170,171,173],{},"A strict, isolated ",[18,172,20],{}," layout.",[56,175,176],{},"A content-addressable global store.",[56,178,179],{},"Workspace-aware installs and recursive commands.",[56,181,182,28,185,28,188,191],{},[18,183,184],{},"workspace:",[18,186,187],{},"link:",[18,189,190],{},"file:",", git, tarball URL, npm alias, and catalog\ndependency specifiers.",[56,193,194],{},"Root lifecycle scripts, with dependency lifecycle scripts gated by an\nexplicit allowlist and optional jailed execution.",[14,196,197,198,201,202,205,206,46],{},"SCPM uses its own internal directory names: ",[18,199,200],{},"node_modules\u002F.scpm\u002F"," for the\nvirtual store and ",[18,203,204],{},"$XDG_DATA_HOME\u002Fscpm\u002Fstore\u002F"," for the global store. Existing\nlockfiles are preserved in place; only projects with no supported lockfile start\nwith ",[18,207,45],{},[48,209,211],{"id":210},"reference-sections","Reference sections",[53,213,214,221,231],{},[56,215,216,220],{},[59,217,219],{"href":218},"\u002Fdocs\u002Fcli\u002F","CLI Reference"," is generated from the command parser.",[56,222,223,227,228,46],{},[59,224,226],{"href":225},"\u002Fdocs\u002Fsettings\u002F","Settings Reference"," is generated from ",[18,229,230],{},"settings.toml",[56,232,233,237],{},[59,234,236],{"href":235},"\u002Fdocs\u002Fbenchmarks","Benchmarks"," explains the imported performance measurements.",{"title":239,"searchDepth":240,"depth":240,"links":241},"",2,[242,243,244],{"id":50,"depth":240,"text":51},{"id":161,"depth":240,"text":162},{"id":210,"depth":240,"text":211},"SCPM is a package manager for Node.js projects. It uses a pnpm-style isolated\nnode_modules layout for fast, disk-efficient installs.","md",{},true,"\u002Fdocs\u002Fguide",{"title":5,"description":245},"docs\u002Fguide","h-ME0fSJA4MQpYNRC2CQV4owI_tAx-A8mdaFGcg0p5A",[254,255,257,260,263,266,269,272,275,278,281,284,287,290,293,296,299,302,305,308,311,314,317,320,323,326,329,332,335,338,341,344,347,350,353,356,359,362,365,368,371,374,377,380,383,386,389,392,395,398,401,404,407,410,413,416,419,422,425,428,431,434,437,440,443,446,449,452,455,458,461,464,467,470,473,476,479,482,485,488,491,493,496,499,502,505,508,511,514,517,520,521,524,525,527,530,531,534,535,537,538,541,544,547,550,551,554,555,557,560,563,566,569,572,575,578],{"path":235,"title":236},{"path":83,"title":256},"For bun users",{"path":258,"title":259},"\u002Fdocs\u002Fcli\u002Fadd","scpm add",{"path":261,"title":262},"\u002Fdocs\u002Fcli\u002Fapprove-builds","scpm approve-builds",{"path":264,"title":265},"\u002Fdocs\u002Fcli\u002Faudit","scpm audit",{"path":267,"title":268},"\u002Fdocs\u002Fcli\u002Fbin","scpm bin",{"path":270,"title":271},"\u002Fdocs\u002Fcli\u002Fcache","scpm cache",{"path":273,"title":274},"\u002Fdocs\u002Fcli\u002Fcache\u002Fdelete","scpm cache delete",{"path":276,"title":277},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist","scpm cache list",{"path":279,"title":280},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist-registries","scpm cache list-registries",{"path":282,"title":283},"\u002Fdocs\u002Fcli\u002Fcache\u002Fprune","scpm cache prune",{"path":285,"title":286},"\u002Fdocs\u002Fcli\u002Fcache\u002Fview","scpm cache view",{"path":288,"title":289},"\u002Fdocs\u002Fcli\u002Fcat-file","scpm cat-file",{"path":291,"title":292},"\u002Fdocs\u002Fcli\u002Fcat-index","scpm cat-index",{"path":294,"title":295},"\u002Fdocs\u002Fcli\u002Fcheck","scpm check",{"path":297,"title":298},"\u002Fdocs\u002Fcli\u002Fci","scpm ci",{"path":300,"title":301},"\u002Fdocs\u002Fcli\u002Fclean","scpm clean",{"path":303,"title":304},"\u002Fdocs\u002Fcli\u002Fcompletion","scpm completion",{"path":306,"title":307},"\u002Fdocs\u002Fcli\u002Fconfig","scpm config",{"path":309,"title":310},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fdelete","scpm config delete",{"path":312,"title":313},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fexplain","scpm config explain",{"path":315,"title":316},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ffind","scpm config find",{"path":318,"title":319},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fget","scpm config get",{"path":321,"title":322},"\u002Fdocs\u002Fcli\u002Fconfig\u002Flist","scpm config list",{"path":324,"title":325},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fset","scpm config set",{"path":327,"title":328},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ftui","scpm config tui",{"path":330,"title":331},"\u002Fdocs\u002Fcli\u002Fcreate","scpm create",{"path":333,"title":334},"\u002Fdocs\u002Fcli\u002Fdedupe","scpm dedupe",{"path":336,"title":337},"\u002Fdocs\u002Fcli\u002Fdeploy","scpm deploy",{"path":339,"title":340},"\u002Fdocs\u002Fcli\u002Fdeprecate","scpm deprecate",{"path":342,"title":343},"\u002Fdocs\u002Fcli\u002Fdeprecations","scpm deprecations",{"path":345,"title":346},"\u002Fdocs\u002Fcli\u002Fdiag","scpm diag",{"path":348,"title":349},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fanalyze","scpm diag analyze",{"path":351,"title":352},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fcompare","scpm diag compare",{"path":354,"title":355},"\u002Fdocs\u002Fcli\u002Fdist-tag","scpm dist-tag",{"path":357,"title":358},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fadd","scpm dist-tag add",{"path":360,"title":361},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fls","scpm dist-tag ls",{"path":363,"title":364},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Frm","scpm dist-tag rm",{"path":366,"title":367},"\u002Fdocs\u002Fcli\u002Fdlx","scpm dlx",{"path":369,"title":370},"\u002Fdocs\u002Fcli\u002Fdoctor","scpm doctor",{"path":372,"title":373},"\u002Fdocs\u002Fcli\u002Fexec","scpm exec",{"path":375,"title":376},"\u002Fdocs\u002Fcli\u002Ffetch","scpm fetch",{"path":378,"title":379},"\u002Fdocs\u002Fcli\u002Ffind-hash","scpm find-hash",{"path":381,"title":382},"\u002Fdocs\u002Fcli\u002Fignored-builds","scpm ignored-builds",{"path":384,"title":385},"\u002Fdocs\u002Fcli\u002Fimport","scpm import",{"path":387,"title":388},"\u002Fdocs\u002Fcli","scpm",{"path":390,"title":391},"\u002Fdocs\u002Fcli\u002Finit","scpm init",{"path":393,"title":394},"\u002Fdocs\u002Fcli\u002Finstall","scpm install",{"path":396,"title":397},"\u002Fdocs\u002Fcli\u002Flicenses","scpm licenses",{"path":399,"title":400},"\u002Fdocs\u002Fcli\u002Flink","scpm link",{"path":402,"title":403},"\u002Fdocs\u002Fcli\u002Flist","scpm list",{"path":405,"title":406},"\u002Fdocs\u002Fcli\u002Flogin","scpm login",{"path":408,"title":409},"\u002Fdocs\u002Fcli\u002Flogout","scpm logout",{"path":411,"title":412},"\u002Fdocs\u002Fcli\u002Foutdated","scpm outdated",{"path":414,"title":415},"\u002Fdocs\u002Fcli\u002Fpack","scpm pack",{"path":417,"title":418},"\u002Fdocs\u002Fcli\u002Fpatch","scpm patch",{"path":420,"title":421},"\u002Fdocs\u002Fcli\u002Fpatch-commit","scpm patch-commit",{"path":423,"title":424},"\u002Fdocs\u002Fcli\u002Fpatch-remove","scpm patch-remove",{"path":426,"title":427},"\u002Fdocs\u002Fcli\u002Fpeers","scpm peers",{"path":429,"title":430},"\u002Fdocs\u002Fcli\u002Fpeers\u002Fcheck","scpm peers check",{"path":432,"title":433},"\u002Fdocs\u002Fcli\u002Fprune","scpm prune",{"path":435,"title":436},"\u002Fdocs\u002Fcli\u002Fpublish","scpm publish",{"path":438,"title":439},"\u002Fdocs\u002Fcli\u002Fpurge","scpm purge",{"path":441,"title":442},"\u002Fdocs\u002Fcli\u002Fquery","scpm query",{"path":444,"title":445},"\u002Fdocs\u002Fcli\u002Frebuild","scpm rebuild",{"path":447,"title":448},"\u002Fdocs\u002Fcli\u002Frecursive","scpm recursive",{"path":450,"title":451},"\u002Fdocs\u002Fcli\u002Fremove","scpm remove",{"path":453,"title":454},"\u002Fdocs\u002Fcli\u002Frestart","scpm restart",{"path":456,"title":457},"\u002Fdocs\u002Fcli\u002Froot","scpm root",{"path":459,"title":460},"\u002Fdocs\u002Fcli\u002Frun","scpm run",{"path":462,"title":463},"\u002Fdocs\u002Fcli\u002Fsbom","scpm sbom",{"path":465,"title":466},"\u002Fdocs\u002Fcli\u002Fsponsors","scpm sponsors",{"path":468,"title":469},"\u002Fdocs\u002Fcli\u002Fstage","scpm stage",{"path":471,"title":472},"\u002Fdocs\u002Fcli\u002Fstart","scpm start",{"path":474,"title":475},"\u002Fdocs\u002Fcli\u002Fstop","scpm stop",{"path":477,"title":478},"\u002Fdocs\u002Fcli\u002Fstore","scpm store",{"path":480,"title":481},"\u002Fdocs\u002Fcli\u002Fstore\u002Fadd","scpm store add",{"path":483,"title":484},"\u002Fdocs\u002Fcli\u002Fstore\u002Fpath","scpm store path",{"path":486,"title":487},"\u002Fdocs\u002Fcli\u002Fstore\u002Fprune","scpm store prune",{"path":489,"title":490},"\u002Fdocs\u002Fcli\u002Fstore\u002Fstatus","scpm store status",{"path":492,"title":98},"\u002Fdocs\u002Fcli\u002Ftest",{"path":494,"title":495},"\u002Fdocs\u002Fcli\u002Fundeprecate","scpm undeprecate",{"path":497,"title":498},"\u002Fdocs\u002Fcli\u002Funlink","scpm unlink",{"path":500,"title":501},"\u002Fdocs\u002Fcli\u002Funpublish","scpm unpublish",{"path":503,"title":504},"\u002Fdocs\u002Fcli\u002Fupdate","scpm update",{"path":506,"title":507},"\u002Fdocs\u002Fcli\u002Fversion","scpm version",{"path":509,"title":510},"\u002Fdocs\u002Fcli\u002Fview","scpm view",{"path":512,"title":513},"\u002Fdocs\u002Fcli\u002Fwhy","scpm why",{"path":515,"title":516},"\u002Fdocs\u002Ferror-codes","Error and warning codes",{"path":518,"title":519},"\u002Fdocs\u002Fgetting-started","Getting Started",{"path":249,"title":5},{"path":522,"title":523},"\u002Fdocs","SCPM Documentation",{"path":61,"title":62},{"path":73,"title":526},"For npm users",{"path":528,"title":529},"\u002Fdocs\u002Fpackage-manager\u002Fconfiguration","Configuration",{"path":131,"title":132},{"path":532,"title":533},"\u002Fdocs\u002Fpackage-manager\u002Fglobal-virtual-store","Global virtual store",{"path":112,"title":113},{"path":124,"title":536},"Jailed dependency builds",{"path":119,"title":120},{"path":539,"title":540},"\u002Fdocs\u002Fpackage-manager\u002Flockfiles","Lockfiles",{"path":542,"title":543},"\u002Fdocs\u002Fpackage-manager\u002Fnode-modules","node_modules layout",{"path":545,"title":546},"\u002Fdocs\u002Fpackage-manager\u002Fpublishing","Publishing",{"path":548,"title":549},"\u002Fdocs\u002Fpackage-manager\u002Fregistry-auth","Registry and auth",{"path":90,"title":91},{"path":552,"title":553},"\u002Fdocs\u002Fpackage-manager\u002Fsecurity-scanner","Security scanner",{"path":153,"title":154},{"path":69,"title":556},"For pnpm users",{"path":558,"title":559},"\u002Fdocs\u002Fsecurity","Security",{"path":561,"title":562},"\u002Fdocs\u002Fsettings\u002Fcli","CLI Settings",{"path":564,"title":565},"\u002Fdocs\u002Fsettings\u002Fenv","Environment Settings",{"path":567,"title":568},"\u002Fdocs\u002Fsettings","Settings",{"path":570,"title":571},"\u002Fdocs\u002Fsettings\u002Fnpmrc",".npmrc Settings",{"path":573,"title":574},"\u002Fdocs\u002Fsettings\u002Fworkspace-yaml","Workspace YAML Settings",{"path":576,"title":577},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting",{"path":78,"title":579},"For yarn users",1780584396924]