[{"data":1,"prerenderedAt":644},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fgetting-started":3,"docs-pages":307},{"id":4,"title":5,"body":6,"description":299,"extension":300,"meta":301,"navigation":302,"path":303,"seo":304,"stem":305,"__hash__":306},"docs\u002Fdocs\u002Fgetting-started.md","Getting Started",{"type":7,"value":8,"toc":292},"minimark",[9,13,17,22,25,42,61,64,73,76,85,89,92,101,118,121,130,133,142,146,198,206,210,213,247,253,257,288],[10,11,5],"h1",{"id":12},"getting-started",[14,15,16],"p",{},"SCPM installs as a native command-line tool for Node projects. You do not need a\nRust toolchain or Cargo to use the public installer.",[18,19,21],"h2",{"id":20},"install-scpm","Install SCPM",[14,23,24],{},"On a supported Unix target, run the shell installer:",[26,27,32],"pre",{"className":28,"code":29,"language":30,"meta":31,"style":31},"language-sh shiki shiki-themes github-light github-dark","curl -fsSL https:\u002F\u002Fscpm.dev\u002Finstall.sh | sh\n","sh","",[33,34,35],"code",{"__ignoreMap":31},[36,37,40],"span",{"class":38,"line":39},"line",1,[36,41,29],{},[14,43,44,45,48,49,52,53,56,57,60],{},"The installer requires Node.js, downloads a prebuilt SCPM binary for your\nplatform, verifies the archive checksum, and writes ",[33,46,47],{},"scpm",", ",[33,50,51],{},"scpmr",", and\n",[33,54,55],{},"scpmx"," to ",[33,58,59],{},"~\u002F.local\u002Fbin"," by default.",[14,62,63],{},"Use a different install directory when needed:",[26,65,67],{"className":28,"code":66,"language":30,"meta":31,"style":31},"curl -fsSL https:\u002F\u002Fscpm.dev\u002Finstall.sh | SCPM_INSTALL_DIR=\"$HOME\u002Fbin\" sh\n",[33,68,69],{"__ignoreMap":31},[36,70,71],{"class":38,"line":39},[36,72,66],{},[14,74,75],{},"Check the installed binary:",[26,77,79],{"className":28,"code":78,"language":30,"meta":31,"style":31},"scpm --version\n",[33,80,81],{"__ignoreMap":31},[36,82,83],{"class":38,"line":39},[36,84,78],{},[18,86,88],{"id":87},"run-it-in-a-project","Run It In A Project",[14,90,91],{},"Move into an existing Node project and run the command you already intended to\nrun:",[26,93,95],{"className":28,"code":94,"language":30,"meta":31,"style":31},"scpmr test\n",[33,96,97],{"__ignoreMap":31},[36,98,99],{"class":38,"line":39},[36,100,94],{},[14,102,103,105,106,109,110,113,114,117],{},[33,104,51],{}," is shorthand for ",[33,107,108],{},"scpm run",". It checks whether ",[33,111,112],{},"node_modules"," is fresh\nfor the current ",[33,115,116],{},"package.json"," and lockfile. When dependencies are missing or\nstale, SCPM installs first. When the tree is already current, it runs the script\nimmediately.",[14,119,120],{},"For a plain install:",[26,122,124],{"className":28,"code":123,"language":30,"meta":31,"style":31},"scpm install\n",[33,125,126],{"__ignoreMap":31},[36,127,128],{"class":38,"line":39},[36,129,123],{},[14,131,132],{},"For CI:",[26,134,136],{"className":28,"code":135,"language":30,"meta":31,"style":31},"scpm ci\n",[33,137,138],{"__ignoreMap":31},[36,139,140],{"class":38,"line":39},[36,141,135],{},[18,143,145],{"id":144},"daily-commands","Daily Commands",[26,147,149],{"className":28,"code":148,"language":30,"meta":31,"style":31},"scpm add react\nscpm add -D vitest\nscpm remove react\nscpm update\nscpmr build\nscpm test\nscpm exec vitest\nscpmx cowsay hi\n",[33,150,151,156,162,168,174,180,186,192],{"__ignoreMap":31},[36,152,153],{"class":38,"line":39},[36,154,155],{},"scpm add react\n",[36,157,159],{"class":38,"line":158},2,[36,160,161],{},"scpm add -D vitest\n",[36,163,165],{"class":38,"line":164},3,[36,166,167],{},"scpm remove react\n",[36,169,171],{"class":38,"line":170},4,[36,172,173],{},"scpm update\n",[36,175,177],{"class":38,"line":176},5,[36,178,179],{},"scpmr build\n",[36,181,183],{"class":38,"line":182},6,[36,184,185],{},"scpm test\n",[36,187,189],{"class":38,"line":188},7,[36,190,191],{},"scpm exec vitest\n",[36,193,195],{"class":38,"line":194},8,[36,196,197],{},"scpmx cowsay hi\n",[14,199,200,105,202,205],{},[33,201,55],{},[33,203,204],{},"scpm dlx",". It prefers an installed local binary and\notherwise uses a throwaway environment for one-off tools.",[18,207,209],{"id":208},"lockfiles","Lockfiles",[14,211,212],{},"SCPM can read and write these lockfile formats in place:",[214,215,216,222,227,232,237,242],"ul",{},[217,218,219],"li",{},[33,220,221],{},"scpm-lock.yaml",[217,223,224],{},[33,225,226],{},"pnpm-lock.yaml",[217,228,229],{},[33,230,231],{},"package-lock.json",[217,233,234],{},[33,235,236],{},"npm-shrinkwrap.json",[217,238,239],{},[33,240,241],{},"yarn.lock",[217,243,244],{},[33,245,246],{},"bun.lock",[14,248,249,250,252],{},"If a project already has one supported lockfile, SCPM keeps using that format.\nFor a new project with no lockfile, SCPM creates ",[33,251,221],{},".",[18,254,256],{"id":255},"what-to-read-next","What To Read Next",[214,258,259,267,274,281],{},[217,260,261,266],{},[262,263,265],"a",{"href":264},"\u002Fdocs\u002Finstallation","Installation"," for installer options and archive details.",[217,268,269,273],{},[262,270,272],{"href":271},"\u002Fdocs\u002Fsecurity","Security controls"," for lifecycle-script and trust policies.",[217,275,276,280],{},[262,277,279],{"href":278},"\u002Fdocs\u002Fpackage-manager\u002Finstall","Install dependencies"," for lockfile and CI\nmodes.",[217,282,283,287],{},[262,284,286],{"href":285},"\u002Fdocs\u002Fcli","CLI reference"," for every command and flag.",[289,290,291],"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":31,"searchDepth":158,"depth":158,"links":293},[294,295,296,297,298],{"id":20,"depth":158,"text":21},{"id":87,"depth":158,"text":88},{"id":144,"depth":158,"text":145},{"id":208,"depth":158,"text":209},{"id":255,"depth":158,"text":256},"Install SCPM, run it in an existing Node project, and learn the daily command flow.","md",{},true,"\u002Fdocs\u002Fgetting-started",{"title":5,"description":299},"docs\u002Fgetting-started","GSJ-mTe7M9YwC82oQxgQ70tg9aHUHuEPnT8oiUxD8jw",[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,424,427,430,433,436,439,442,443,446,449,452,455,458,461,464,467,470,473,476,479,482,485,488,491,494,497,500,503,506,509,512,514,517,520,523,526,529,532,535,538,541,544,547,550,553,556,559,562,565,568,571,572,575,578,579,582,585,588,591,592,595,598,600,603,606,609,612,615,618,621,623,626,629,632,635,638,641],{"path":309,"title":310},"\u002Fdocs\u002Fbenchmarks","Benchmarks",{"path":312,"title":313},"\u002Fdocs\u002Fbun-users","For bun users",{"path":315,"title":316},"\u002Fdocs\u002Fcli\u002Fadd","scpm add",{"path":318,"title":319},"\u002Fdocs\u002Fcli\u002Fapprove-builds","scpm approve-builds",{"path":321,"title":322},"\u002Fdocs\u002Fcli\u002Faudit","scpm audit",{"path":324,"title":325},"\u002Fdocs\u002Fcli\u002Fbin","scpm bin",{"path":327,"title":328},"\u002Fdocs\u002Fcli\u002Fcache","scpm cache",{"path":330,"title":331},"\u002Fdocs\u002Fcli\u002Fcache\u002Fdelete","scpm cache delete",{"path":333,"title":334},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist","scpm cache list",{"path":336,"title":337},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist-registries","scpm cache list-registries",{"path":339,"title":340},"\u002Fdocs\u002Fcli\u002Fcache\u002Fprune","scpm cache prune",{"path":342,"title":343},"\u002Fdocs\u002Fcli\u002Fcache\u002Fview","scpm cache view",{"path":345,"title":346},"\u002Fdocs\u002Fcli\u002Fcat-file","scpm cat-file",{"path":348,"title":349},"\u002Fdocs\u002Fcli\u002Fcat-index","scpm cat-index",{"path":351,"title":352},"\u002Fdocs\u002Fcli\u002Fcheck","scpm check",{"path":354,"title":355},"\u002Fdocs\u002Fcli\u002Fci","scpm ci",{"path":357,"title":358},"\u002Fdocs\u002Fcli\u002Fclean","scpm clean",{"path":360,"title":361},"\u002Fdocs\u002Fcli\u002Fcompletion","scpm completion",{"path":363,"title":364},"\u002Fdocs\u002Fcli\u002Fconfig","scpm config",{"path":366,"title":367},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fdelete","scpm config delete",{"path":369,"title":370},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fexplain","scpm config explain",{"path":372,"title":373},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ffind","scpm config find",{"path":375,"title":376},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fget","scpm config get",{"path":378,"title":379},"\u002Fdocs\u002Fcli\u002Fconfig\u002Flist","scpm config list",{"path":381,"title":382},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fset","scpm config set",{"path":384,"title":385},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ftui","scpm config tui",{"path":387,"title":388},"\u002Fdocs\u002Fcli\u002Fcreate","scpm create",{"path":390,"title":391},"\u002Fdocs\u002Fcli\u002Fdedupe","scpm dedupe",{"path":393,"title":394},"\u002Fdocs\u002Fcli\u002Fdeploy","scpm deploy",{"path":396,"title":397},"\u002Fdocs\u002Fcli\u002Fdeprecate","scpm deprecate",{"path":399,"title":400},"\u002Fdocs\u002Fcli\u002Fdeprecations","scpm deprecations",{"path":402,"title":403},"\u002Fdocs\u002Fcli\u002Fdiag","scpm diag",{"path":405,"title":406},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fanalyze","scpm diag analyze",{"path":408,"title":409},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fcompare","scpm diag compare",{"path":411,"title":412},"\u002Fdocs\u002Fcli\u002Fdist-tag","scpm dist-tag",{"path":414,"title":415},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fadd","scpm dist-tag add",{"path":417,"title":418},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fls","scpm dist-tag ls",{"path":420,"title":421},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Frm","scpm dist-tag rm",{"path":423,"title":204},"\u002Fdocs\u002Fcli\u002Fdlx",{"path":425,"title":426},"\u002Fdocs\u002Fcli\u002Fdoctor","scpm doctor",{"path":428,"title":429},"\u002Fdocs\u002Fcli\u002Fexec","scpm exec",{"path":431,"title":432},"\u002Fdocs\u002Fcli\u002Ffetch","scpm fetch",{"path":434,"title":435},"\u002Fdocs\u002Fcli\u002Ffind-hash","scpm find-hash",{"path":437,"title":438},"\u002Fdocs\u002Fcli\u002Fignored-builds","scpm ignored-builds",{"path":440,"title":441},"\u002Fdocs\u002Fcli\u002Fimport","scpm import",{"path":285,"title":47},{"path":444,"title":445},"\u002Fdocs\u002Fcli\u002Finit","scpm init",{"path":447,"title":448},"\u002Fdocs\u002Fcli\u002Finstall","scpm install",{"path":450,"title":451},"\u002Fdocs\u002Fcli\u002Flicenses","scpm licenses",{"path":453,"title":454},"\u002Fdocs\u002Fcli\u002Flink","scpm link",{"path":456,"title":457},"\u002Fdocs\u002Fcli\u002Flist","scpm list",{"path":459,"title":460},"\u002Fdocs\u002Fcli\u002Flogin","scpm login",{"path":462,"title":463},"\u002Fdocs\u002Fcli\u002Flogout","scpm logout",{"path":465,"title":466},"\u002Fdocs\u002Fcli\u002Foutdated","scpm outdated",{"path":468,"title":469},"\u002Fdocs\u002Fcli\u002Fpack","scpm pack",{"path":471,"title":472},"\u002Fdocs\u002Fcli\u002Fpatch","scpm patch",{"path":474,"title":475},"\u002Fdocs\u002Fcli\u002Fpatch-commit","scpm patch-commit",{"path":477,"title":478},"\u002Fdocs\u002Fcli\u002Fpatch-remove","scpm patch-remove",{"path":480,"title":481},"\u002Fdocs\u002Fcli\u002Fpeers","scpm peers",{"path":483,"title":484},"\u002Fdocs\u002Fcli\u002Fpeers\u002Fcheck","scpm peers check",{"path":486,"title":487},"\u002Fdocs\u002Fcli\u002Fprune","scpm prune",{"path":489,"title":490},"\u002Fdocs\u002Fcli\u002Fpublish","scpm publish",{"path":492,"title":493},"\u002Fdocs\u002Fcli\u002Fpurge","scpm purge",{"path":495,"title":496},"\u002Fdocs\u002Fcli\u002Fquery","scpm query",{"path":498,"title":499},"\u002Fdocs\u002Fcli\u002Frebuild","scpm rebuild",{"path":501,"title":502},"\u002Fdocs\u002Fcli\u002Frecursive","scpm recursive",{"path":504,"title":505},"\u002Fdocs\u002Fcli\u002Fremove","scpm remove",{"path":507,"title":508},"\u002Fdocs\u002Fcli\u002Frestart","scpm restart",{"path":510,"title":511},"\u002Fdocs\u002Fcli\u002Froot","scpm root",{"path":513,"title":108},"\u002Fdocs\u002Fcli\u002Frun",{"path":515,"title":516},"\u002Fdocs\u002Fcli\u002Fsbom","scpm sbom",{"path":518,"title":519},"\u002Fdocs\u002Fcli\u002Fsponsors","scpm sponsors",{"path":521,"title":522},"\u002Fdocs\u002Fcli\u002Fstage","scpm stage",{"path":524,"title":525},"\u002Fdocs\u002Fcli\u002Fstart","scpm start",{"path":527,"title":528},"\u002Fdocs\u002Fcli\u002Fstop","scpm stop",{"path":530,"title":531},"\u002Fdocs\u002Fcli\u002Fstore","scpm store",{"path":533,"title":534},"\u002Fdocs\u002Fcli\u002Fstore\u002Fadd","scpm store add",{"path":536,"title":537},"\u002Fdocs\u002Fcli\u002Fstore\u002Fpath","scpm store path",{"path":539,"title":540},"\u002Fdocs\u002Fcli\u002Fstore\u002Fprune","scpm store prune",{"path":542,"title":543},"\u002Fdocs\u002Fcli\u002Fstore\u002Fstatus","scpm store status",{"path":545,"title":546},"\u002Fdocs\u002Fcli\u002Ftest","scpm test",{"path":548,"title":549},"\u002Fdocs\u002Fcli\u002Fundeprecate","scpm undeprecate",{"path":551,"title":552},"\u002Fdocs\u002Fcli\u002Funlink","scpm unlink",{"path":554,"title":555},"\u002Fdocs\u002Fcli\u002Funpublish","scpm unpublish",{"path":557,"title":558},"\u002Fdocs\u002Fcli\u002Fupdate","scpm update",{"path":560,"title":561},"\u002Fdocs\u002Fcli\u002Fversion","scpm version",{"path":563,"title":564},"\u002Fdocs\u002Fcli\u002Fview","scpm view",{"path":566,"title":567},"\u002Fdocs\u002Fcli\u002Fwhy","scpm why",{"path":569,"title":570},"\u002Fdocs\u002Ferror-codes","Error and warning codes",{"path":303,"title":5},{"path":573,"title":574},"\u002Fdocs\u002Fguide","Guide",{"path":576,"title":577},"\u002Fdocs","SCPM Documentation",{"path":264,"title":265},{"path":580,"title":581},"\u002Fdocs\u002Fnpm-users","For npm users",{"path":583,"title":584},"\u002Fdocs\u002Fpackage-manager\u002Fconfiguration","Configuration",{"path":586,"title":587},"\u002Fdocs\u002Fpackage-manager\u002Fdependencies","Manage dependencies",{"path":589,"title":590},"\u002Fdocs\u002Fpackage-manager\u002Fglobal-virtual-store","Global virtual store",{"path":278,"title":279},{"path":593,"title":594},"\u002Fdocs\u002Fpackage-manager\u002Fjailed-builds","Jailed dependency builds",{"path":596,"title":597},"\u002Fdocs\u002Fpackage-manager\u002Flifecycle-scripts","Lifecycle scripts",{"path":599,"title":209},"\u002Fdocs\u002Fpackage-manager\u002Flockfiles",{"path":601,"title":602},"\u002Fdocs\u002Fpackage-manager\u002Fnode-modules","node_modules layout",{"path":604,"title":605},"\u002Fdocs\u002Fpackage-manager\u002Fpublishing","Publishing",{"path":607,"title":608},"\u002Fdocs\u002Fpackage-manager\u002Fregistry-auth","Registry and auth",{"path":610,"title":611},"\u002Fdocs\u002Fpackage-manager\u002Fscripts","Run scripts and binaries",{"path":613,"title":614},"\u002Fdocs\u002Fpackage-manager\u002Fsecurity-scanner","Security scanner",{"path":616,"title":617},"\u002Fdocs\u002Fpackage-manager\u002Fworkspaces","Workspaces",{"path":619,"title":620},"\u002Fdocs\u002Fpnpm-users","For pnpm users",{"path":271,"title":622},"Security",{"path":624,"title":625},"\u002Fdocs\u002Fsettings\u002Fcli","CLI Settings",{"path":627,"title":628},"\u002Fdocs\u002Fsettings\u002Fenv","Environment Settings",{"path":630,"title":631},"\u002Fdocs\u002Fsettings","Settings",{"path":633,"title":634},"\u002Fdocs\u002Fsettings\u002Fnpmrc",".npmrc Settings",{"path":636,"title":637},"\u002Fdocs\u002Fsettings\u002Fworkspace-yaml","Workspace YAML Settings",{"path":639,"title":640},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting",{"path":642,"title":643},"\u002Fdocs\u002Fyarn-users","For yarn users",1780584396923]