[{"data":1,"prerenderedAt":584},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fpackage-manager\u002Flockfiles":3,"docs-pages":238},{"id":4,"title":5,"body":6,"description":230,"extension":231,"meta":232,"navigation":233,"path":234,"seo":235,"stem":236,"__hash__":237},"docs\u002Fdocs\u002Fpackage-manager\u002Flockfiles.md","Lockfiles",{"type":7,"value":8,"toc":222},"minimark",[9,13,22,27,35,71,75,110,113,135,138,142,165,168,172,181,184,188,197,203,207,218],[10,11,5],"h1",{"id":12},"lockfiles",[14,15,16,17,21],"p",{},"scpm's default lockfile for new projects is ",[18,19,20],"code",{},"scpm-lock.yaml",". For projects\nthat already have a different supported lockfile, scpm keeps reading and\nwriting that file in place.",[23,24,26],"h2",{"id":25},"supported-lockfile-formats","Supported lockfile formats",[14,28,29,30,34],{},"scpm reads ",[31,32,33],"em",{},"and writes"," all of the following formats:",[36,37,38,44,50,55,60,66],"ul",{},[39,40,41,43],"li",{},[18,42,20],{}," (default for new projects)",[39,45,46,49],{},[18,47,48],{},"pnpm-lock.yaml"," v9",[39,51,52],{},[18,53,54],{},"package-lock.json",[39,56,57],{},[18,58,59],{},"npm-shrinkwrap.json",[39,61,62,65],{},[18,63,64],{},"yarn.lock"," — both v1 classic and v2+ berry",[39,67,68],{},[18,69,70],{},"bun.lock",[23,72,74],{"id":73},"write-behavior","Write behavior",[14,76,77,78,81,82,81,85,81,88,91,92,94,95,94,97,99,100,94,102,94,104,106,107,109],{},"On install (and on ",[18,79,80],{},"add",", ",[18,83,84],{},"remove",[18,86,87],{},"update",[18,89,90],{},"dedupe","), scpm picks the\nlockfile to write from whichever supported file already exists in the project\ndirectory. Precedence is: ",[18,93,20],{}," → ",[18,96,48],{},[18,98,70],{}," →\n",[18,101,64],{},[18,103,59],{},[18,105,54],{},". When none of those\nexist yet, scpm writes ",[18,108,20],{},".",[14,111,112],{},"The practical upshot:",[36,114,115,121,126],{},[39,116,117,118,120],{},"A pnpm project keeps getting ",[18,119,48],{}," updates.",[39,122,123,124,120],{},"An npm project keeps getting ",[18,125,54],{},[39,127,128,129,132,133,109],{},"Only ",[18,130,131],{},"scpm import"," (or manually removing the existing lockfile) switches a\nproject onto ",[18,134,20],{},[14,136,137],{},"Keep the original lockfile while its package manager is still part of the\nworkflow — scpm and the original package manager both read from and write to\nthe same file without conflicting.",[23,139,141],{"id":140},"frozen-installs","Frozen installs",[143,144,149],"pre",{"className":145,"code":146,"language":147,"meta":148,"style":148},"language-sh shiki shiki-themes github-light github-dark","scpm install --frozen-lockfile\nscpm ci\n","sh","",[18,150,151,159],{"__ignoreMap":148},[152,153,156],"span",{"class":154,"line":155},"line",1,[152,157,158],{},"scpm install --frozen-lockfile\n",[152,160,162],{"class":154,"line":161},2,[152,163,164],{},"scpm ci\n",[14,166,167],{},"Frozen mode fails when the lockfile no longer matches the manifest.",[23,169,171],{"id":170},"prefer-frozen-installs","Prefer frozen installs",[143,173,175],{"className":145,"code":174,"language":147,"meta":148,"style":148},"scpm install --prefer-frozen-lockfile\n",[18,176,177],{"__ignoreMap":148},[152,178,179],{"class":154,"line":155},[152,180,174],{},[14,182,183],{},"This is the local default. scpm uses the lockfile if it is fresh and\nre-resolves when the manifest changed.",[23,185,187],{"id":186},"lockfile-only-updates","Lockfile-only updates",[143,189,191],{"className":145,"code":190,"language":147,"meta":148,"style":148},"scpm install --lockfile-only\n",[18,192,193],{"__ignoreMap":148},[152,194,195],{"class":154,"line":155},[152,196,190],{},[14,198,199,200,109],{},"Use this when CI or automation needs to update dependency metadata without\ntouching ",[18,201,202],{},"node_modules",[23,204,206],{"id":205},"branch-lockfiles","Branch lockfiles",[14,208,209,210,213,214,217],{},"When ",[18,211,212],{},"gitBranchLockfile"," is enabled, scpm writes branch-specific lockfile names\nsuch as ",[18,215,216],{},"scpm-lock.\u003Cbranch>.yaml",". Use this for long-running branches that\nproduce frequent lockfile conflicts.",[219,220,221],"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":148,"searchDepth":161,"depth":161,"links":223},[224,225,226,227,228,229],{"id":25,"depth":161,"text":26},{"id":73,"depth":161,"text":74},{"id":140,"depth":161,"text":141},{"id":170,"depth":161,"text":171},{"id":186,"depth":161,"text":187},{"id":205,"depth":161,"text":206},"scpm's default lockfile for new projects is scpm-lock.yaml. For projects\nthat already have a different supported lockfile, scpm keeps reading and\nwriting that file in place.","md",{},true,"\u002Fdocs\u002Fpackage-manager\u002Flockfiles",{"title":5,"description":230},"docs\u002Fpackage-manager\u002Flockfiles","olUEDnfFVjvj1JVLpRZhw5FiDt0o2kJaQQ-eP7npgQw",[239,242,245,248,251,254,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,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,539,542,545,548,551,554,557,560,563,566,569,572,575,578,581],{"path":240,"title":241},"\u002Fdocs\u002Fbenchmarks","Benchmarks",{"path":243,"title":244},"\u002Fdocs\u002Fbun-users","For bun users",{"path":246,"title":247},"\u002Fdocs\u002Fcli\u002Fadd","scpm add",{"path":249,"title":250},"\u002Fdocs\u002Fcli\u002Fapprove-builds","scpm approve-builds",{"path":252,"title":253},"\u002Fdocs\u002Fcli\u002Faudit","scpm audit",{"path":255,"title":256},"\u002Fdocs\u002Fcli\u002Fbin","scpm bin",{"path":258,"title":259},"\u002Fdocs\u002Fcli\u002Fcache","scpm cache",{"path":261,"title":262},"\u002Fdocs\u002Fcli\u002Fcache\u002Fdelete","scpm cache delete",{"path":264,"title":265},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist","scpm cache list",{"path":267,"title":268},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist-registries","scpm cache list-registries",{"path":270,"title":271},"\u002Fdocs\u002Fcli\u002Fcache\u002Fprune","scpm cache prune",{"path":273,"title":274},"\u002Fdocs\u002Fcli\u002Fcache\u002Fview","scpm cache view",{"path":276,"title":277},"\u002Fdocs\u002Fcli\u002Fcat-file","scpm cat-file",{"path":279,"title":280},"\u002Fdocs\u002Fcli\u002Fcat-index","scpm cat-index",{"path":282,"title":283},"\u002Fdocs\u002Fcli\u002Fcheck","scpm check",{"path":285,"title":286},"\u002Fdocs\u002Fcli\u002Fci","scpm ci",{"path":288,"title":289},"\u002Fdocs\u002Fcli\u002Fclean","scpm clean",{"path":291,"title":292},"\u002Fdocs\u002Fcli\u002Fcompletion","scpm completion",{"path":294,"title":295},"\u002Fdocs\u002Fcli\u002Fconfig","scpm config",{"path":297,"title":298},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fdelete","scpm config delete",{"path":300,"title":301},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fexplain","scpm config explain",{"path":303,"title":304},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ffind","scpm config find",{"path":306,"title":307},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fget","scpm config get",{"path":309,"title":310},"\u002Fdocs\u002Fcli\u002Fconfig\u002Flist","scpm config list",{"path":312,"title":313},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fset","scpm config set",{"path":315,"title":316},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ftui","scpm config tui",{"path":318,"title":319},"\u002Fdocs\u002Fcli\u002Fcreate","scpm create",{"path":321,"title":322},"\u002Fdocs\u002Fcli\u002Fdedupe","scpm dedupe",{"path":324,"title":325},"\u002Fdocs\u002Fcli\u002Fdeploy","scpm deploy",{"path":327,"title":328},"\u002Fdocs\u002Fcli\u002Fdeprecate","scpm deprecate",{"path":330,"title":331},"\u002Fdocs\u002Fcli\u002Fdeprecations","scpm deprecations",{"path":333,"title":334},"\u002Fdocs\u002Fcli\u002Fdiag","scpm diag",{"path":336,"title":337},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fanalyze","scpm diag analyze",{"path":339,"title":340},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fcompare","scpm diag compare",{"path":342,"title":343},"\u002Fdocs\u002Fcli\u002Fdist-tag","scpm dist-tag",{"path":345,"title":346},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fadd","scpm dist-tag add",{"path":348,"title":349},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fls","scpm dist-tag ls",{"path":351,"title":352},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Frm","scpm dist-tag rm",{"path":354,"title":355},"\u002Fdocs\u002Fcli\u002Fdlx","scpm dlx",{"path":357,"title":358},"\u002Fdocs\u002Fcli\u002Fdoctor","scpm doctor",{"path":360,"title":361},"\u002Fdocs\u002Fcli\u002Fexec","scpm exec",{"path":363,"title":364},"\u002Fdocs\u002Fcli\u002Ffetch","scpm fetch",{"path":366,"title":367},"\u002Fdocs\u002Fcli\u002Ffind-hash","scpm find-hash",{"path":369,"title":370},"\u002Fdocs\u002Fcli\u002Fignored-builds","scpm ignored-builds",{"path":372,"title":131},"\u002Fdocs\u002Fcli\u002Fimport",{"path":374,"title":375},"\u002Fdocs\u002Fcli","scpm",{"path":377,"title":378},"\u002Fdocs\u002Fcli\u002Finit","scpm init",{"path":380,"title":381},"\u002Fdocs\u002Fcli\u002Finstall","scpm install",{"path":383,"title":384},"\u002Fdocs\u002Fcli\u002Flicenses","scpm licenses",{"path":386,"title":387},"\u002Fdocs\u002Fcli\u002Flink","scpm link",{"path":389,"title":390},"\u002Fdocs\u002Fcli\u002Flist","scpm list",{"path":392,"title":393},"\u002Fdocs\u002Fcli\u002Flogin","scpm login",{"path":395,"title":396},"\u002Fdocs\u002Fcli\u002Flogout","scpm logout",{"path":398,"title":399},"\u002Fdocs\u002Fcli\u002Foutdated","scpm outdated",{"path":401,"title":402},"\u002Fdocs\u002Fcli\u002Fpack","scpm pack",{"path":404,"title":405},"\u002Fdocs\u002Fcli\u002Fpatch","scpm patch",{"path":407,"title":408},"\u002Fdocs\u002Fcli\u002Fpatch-commit","scpm patch-commit",{"path":410,"title":411},"\u002Fdocs\u002Fcli\u002Fpatch-remove","scpm patch-remove",{"path":413,"title":414},"\u002Fdocs\u002Fcli\u002Fpeers","scpm peers",{"path":416,"title":417},"\u002Fdocs\u002Fcli\u002Fpeers\u002Fcheck","scpm peers check",{"path":419,"title":420},"\u002Fdocs\u002Fcli\u002Fprune","scpm prune",{"path":422,"title":423},"\u002Fdocs\u002Fcli\u002Fpublish","scpm publish",{"path":425,"title":426},"\u002Fdocs\u002Fcli\u002Fpurge","scpm purge",{"path":428,"title":429},"\u002Fdocs\u002Fcli\u002Fquery","scpm query",{"path":431,"title":432},"\u002Fdocs\u002Fcli\u002Frebuild","scpm rebuild",{"path":434,"title":435},"\u002Fdocs\u002Fcli\u002Frecursive","scpm recursive",{"path":437,"title":438},"\u002Fdocs\u002Fcli\u002Fremove","scpm remove",{"path":440,"title":441},"\u002Fdocs\u002Fcli\u002Frestart","scpm restart",{"path":443,"title":444},"\u002Fdocs\u002Fcli\u002Froot","scpm root",{"path":446,"title":447},"\u002Fdocs\u002Fcli\u002Frun","scpm run",{"path":449,"title":450},"\u002Fdocs\u002Fcli\u002Fsbom","scpm sbom",{"path":452,"title":453},"\u002Fdocs\u002Fcli\u002Fsponsors","scpm sponsors",{"path":455,"title":456},"\u002Fdocs\u002Fcli\u002Fstage","scpm stage",{"path":458,"title":459},"\u002Fdocs\u002Fcli\u002Fstart","scpm start",{"path":461,"title":462},"\u002Fdocs\u002Fcli\u002Fstop","scpm stop",{"path":464,"title":465},"\u002Fdocs\u002Fcli\u002Fstore","scpm store",{"path":467,"title":468},"\u002Fdocs\u002Fcli\u002Fstore\u002Fadd","scpm store add",{"path":470,"title":471},"\u002Fdocs\u002Fcli\u002Fstore\u002Fpath","scpm store path",{"path":473,"title":474},"\u002Fdocs\u002Fcli\u002Fstore\u002Fprune","scpm store prune",{"path":476,"title":477},"\u002Fdocs\u002Fcli\u002Fstore\u002Fstatus","scpm store status",{"path":479,"title":480},"\u002Fdocs\u002Fcli\u002Ftest","scpm test",{"path":482,"title":483},"\u002Fdocs\u002Fcli\u002Fundeprecate","scpm undeprecate",{"path":485,"title":486},"\u002Fdocs\u002Fcli\u002Funlink","scpm unlink",{"path":488,"title":489},"\u002Fdocs\u002Fcli\u002Funpublish","scpm unpublish",{"path":491,"title":492},"\u002Fdocs\u002Fcli\u002Fupdate","scpm update",{"path":494,"title":495},"\u002Fdocs\u002Fcli\u002Fversion","scpm version",{"path":497,"title":498},"\u002Fdocs\u002Fcli\u002Fview","scpm view",{"path":500,"title":501},"\u002Fdocs\u002Fcli\u002Fwhy","scpm why",{"path":503,"title":504},"\u002Fdocs\u002Ferror-codes","Error and warning codes",{"path":506,"title":507},"\u002Fdocs\u002Fgetting-started","Getting Started",{"path":509,"title":510},"\u002Fdocs\u002Fguide","Guide",{"path":512,"title":513},"\u002Fdocs","SCPM Documentation",{"path":515,"title":516},"\u002Fdocs\u002Finstallation","Installation",{"path":518,"title":519},"\u002Fdocs\u002Fnpm-users","For npm users",{"path":521,"title":522},"\u002Fdocs\u002Fpackage-manager\u002Fconfiguration","Configuration",{"path":524,"title":525},"\u002Fdocs\u002Fpackage-manager\u002Fdependencies","Manage dependencies",{"path":527,"title":528},"\u002Fdocs\u002Fpackage-manager\u002Fglobal-virtual-store","Global virtual store",{"path":530,"title":531},"\u002Fdocs\u002Fpackage-manager\u002Finstall","Install dependencies",{"path":533,"title":534},"\u002Fdocs\u002Fpackage-manager\u002Fjailed-builds","Jailed dependency builds",{"path":536,"title":537},"\u002Fdocs\u002Fpackage-manager\u002Flifecycle-scripts","Lifecycle scripts",{"path":234,"title":5},{"path":540,"title":541},"\u002Fdocs\u002Fpackage-manager\u002Fnode-modules","node_modules layout",{"path":543,"title":544},"\u002Fdocs\u002Fpackage-manager\u002Fpublishing","Publishing",{"path":546,"title":547},"\u002Fdocs\u002Fpackage-manager\u002Fregistry-auth","Registry and auth",{"path":549,"title":550},"\u002Fdocs\u002Fpackage-manager\u002Fscripts","Run scripts and binaries",{"path":552,"title":553},"\u002Fdocs\u002Fpackage-manager\u002Fsecurity-scanner","Security scanner",{"path":555,"title":556},"\u002Fdocs\u002Fpackage-manager\u002Fworkspaces","Workspaces",{"path":558,"title":559},"\u002Fdocs\u002Fpnpm-users","For pnpm users",{"path":561,"title":562},"\u002Fdocs\u002Fsecurity","Security",{"path":564,"title":565},"\u002Fdocs\u002Fsettings\u002Fcli","CLI Settings",{"path":567,"title":568},"\u002Fdocs\u002Fsettings\u002Fenv","Environment Settings",{"path":570,"title":571},"\u002Fdocs\u002Fsettings","Settings",{"path":573,"title":574},"\u002Fdocs\u002Fsettings\u002Fnpmrc",".npmrc Settings",{"path":576,"title":577},"\u002Fdocs\u002Fsettings\u002Fworkspace-yaml","Workspace YAML Settings",{"path":579,"title":580},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting",{"path":582,"title":583},"\u002Fdocs\u002Fyarn-users","For yarn users",1780584396926]