[{"data":1,"prerenderedAt":673},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fyarn-users":3,"docs-pages":330},{"id":4,"title":5,"body":6,"description":322,"extension":323,"meta":324,"navigation":325,"path":326,"seo":327,"stem":328,"__hash__":329},"docs\u002Fdocs\u002Fyarn-users.md","For yarn users",{"type":7,"value":8,"toc":316},"minimark",[9,13,26,31,47,66,76,93,108,112,120,149,191,195,206,234,245,249,297,312],[10,11,5],"h1",{"id":12},"for-yarn-users",[14,15,16,17,21,22,25],"p",{},"scpm can install directly from both Yarn classic (v1) and Yarn berry (v2+)\nlockfiles. You do not need to delete ",[18,19,20],"code",{},"yarn.lock"," or remove ",[18,23,24],{},"node_modules","\nbefore trying scpm.",[27,28,30],"h2",{"id":29},"yarn-classic-v1","Yarn classic (v1)",[32,33,38],"pre",{"className":34,"code":35,"language":36,"meta":37,"style":37},"language-sh shiki shiki-themes github-light github-dark","scpm install\n","sh","",[18,39,40],{"__ignoreMap":37},[41,42,45],"span",{"class":43,"line":44},"line",1,[41,46,35],{},[14,48,49,50,53,54,57,58,61,62,65],{},"Run this once when you specifically want to verify that scpm can read and\nwrite the existing Yarn lockfile. For normal local work, run the command you\nwanted instead: ",[18,51,52],{},"scpmr build",", ",[18,55,56],{},"scpm test",", and ",[18,59,60],{},"scpm exec \u003Cbin>"," auto-install\nfirst when dependencies are stale; ",[18,63,64],{},"scpmx \u003Cpkg>"," handles one-off tools.",[14,67,68,69,71,72,75],{},"scpm reads and updates Yarn v1 ",[18,70,20],{}," in place and installs packages\ninto ",[18,73,74],{},"node_modules\u002F.scpm\u002F",".",[14,77,78,79,81,82,85,86,89,90,92],{},"Commit the updated ",[18,80,20],{}," so Yarn classic users and scpm users see the\nsame resolved versions. You do not need ",[18,83,84],{},"scpm import"," for a normal rollout;\n",[18,87,88],{},"scpm install"," keeps ",[18,91,20],{}," as the shared source of truth.",[14,94,95,96,98,99,102,103,105,106,75],{},"Use ",[18,97,84],{}," only if the team intentionally wants to convert the project\nto ",[18,100,101],{},"scpm-lock.yaml",". After import succeeds, remove ",[18,104,20],{}," so future\ninstalls keep writing ",[18,107,101],{},[27,109,111],{"id":110},"yarn-berry-v2","Yarn berry (v2+)",[32,113,114],{"className":34,"code":35,"language":36,"meta":37,"style":37},[18,115,116],{"__ignoreMap":37},[41,117,118],{"class":43,"line":44},[41,119,35],{},[14,121,122,123,125,126,129,130,133,134,137,138,141,142,144,145,148],{},"scpm reads berry's YAML-format ",[18,124,20],{}," (the one with the\n",[18,127,128],{},"__metadata:"," header, ",[18,131,132],{},"resolution:"," \u002F ",[18,135,136],{},"checksum:"," fields, and per-block\n",[18,139,140],{},"linkType",") and writes the same format back. Berry's ",[18,143,136],{},"\nvalues are preserved verbatim so ",[18,146,147],{},"yarn install"," against the rewritten\nfile still validates cached tarballs.",[14,150,151,152,155,156,159,160,53,163,53,166,169,170,53,173,176,177,133,180,183,184,133,187,190],{},"Supported protocols: ",[18,153,154],{},"npm:"," (the common case), ",[18,157,158],{},"patch:"," for local\npatch files against npm-backed packages, ",[18,161,162],{},"workspace:",[18,164,165],{},"file:",[18,167,168],{},"link:",",\n",[18,171,172],{},"portal:",[18,174,175],{},"exec:",", plus ",[18,178,179],{},"git:",[18,181,182],{},"git+ssh:"," \u002F\n",[18,185,186],{},"git+https:",[18,188,189],{},"https:"," URLs for remote sources. Entries that use\nunsupported protocols are skipped with a warning — scpm's dependency\ngraph doesn't model those yet, and they round-trip better through Yarn\nitself.",[27,192,194],{"id":193},"yarn-pnp","Yarn PnP",[14,196,197,198,201,202,205],{},"scpm does not support Yarn's Plug'n'Play linker. Berry projects using\n",[18,199,200],{},"nodeLinker: pnp"," (the default) need to switch to ",[18,203,204],{},"nodeLinker: node-modules"," before using scpm as the install command:",[32,207,211],{"className":208,"code":209,"language":210,"meta":37,"style":37},"language-yaml shiki shiki-themes github-light github-dark","# .yarnrc.yml\nnodeLinker: node-modules\n","yaml",[18,212,213,219],{"__ignoreMap":37},[41,214,215],{"class":43,"line":44},[41,216,218],{"class":217},"sJ8bj","# .yarnrc.yml\n",[41,220,222,226,230],{"class":43,"line":221},2,[41,223,225],{"class":224},"s9eBZ","nodeLinker",[41,227,229],{"class":228},"sVt8B",": ",[41,231,233],{"class":232},"sZZnC","node-modules\n",[14,235,236,237,239,240,242,243,75],{},"Once the project writes a regular ",[18,238,24],{}," tree, ",[18,241,88],{},"\ncan drop in against the same ",[18,244,20],{},[27,246,248],{"id":247},"differences-from-yarn","Differences from Yarn",[250,251,252,256,259,270],"ul",{},[253,254,255],"li",{},"scpm keeps package files in a global content-addressable store.",[253,257,258],{},"scpm uses isolated symlinks instead of a hoisted flat tree by default.",[253,260,261,262,265,266,269],{},"Workspace package discovery follows ",[18,263,264],{},"scpm-workspace.yaml"," (or\n",[18,267,268],{},"pnpm-workspace.yaml"," when the project already has one).",[253,271,272,273,53,276,53,279,282,283,286,287,290,291,296],{},"Dependency lifecycle scripts (",[18,274,275],{},"preinstall",[18,277,278],{},"install",[18,280,281],{},"postinstall",") do\nnot run by default. Yarn runs them for every dependency; scpm runs them\nonly for packages approved in ",[18,284,285],{},"allowBuilds","; legacy\n",[18,288,289],{},"pnpm.onlyBuiltDependencies"," entries are still honored. This follows\nthe pnpm v11 model. Approved dependency builds can also run in a\n",[292,293,295],"a",{"href":294},"\u002Fdocs\u002Fpackage-manager\u002Fjailed-builds","jail"," with package-specific env, path,\nand network permissions.",[14,298,299,300,306,307],{},"References:\n",[292,301,305],{"href":302,"rel":303},"https:\u002F\u002Fclassic.yarnpkg.com\u002Flang\u002Fen\u002Fdocs\u002Fcli\u002Finstall\u002F",[304],"nofollow","Yarn classic install","\n·\n",[292,308,311],{"href":309,"rel":310},"https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Finstall",[304],"Yarn berry install",[313,314,315],"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);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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}",{"title":37,"searchDepth":221,"depth":221,"links":317},[318,319,320,321],{"id":29,"depth":221,"text":30},{"id":110,"depth":221,"text":111},{"id":193,"depth":221,"text":194},{"id":247,"depth":221,"text":248},"scpm can install directly from both Yarn classic (v1) and Yarn berry (v2+)\nlockfiles. You do not need to delete yarn.lock or remove node_modules\nbefore trying scpm.","md",{},true,"\u002Fdocs\u002Fyarn-users",{"title":5,"description":322},"docs\u002Fyarn-users","h4GMPqCrAulJnSOMS7zkZ43FP2KC9-eKOHyljoU7FbM",[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,465,468,471,473,476,479,482,485,488,491,494,497,500,503,506,509,512,515,518,521,524,527,530,533,536,539,542,545,548,551,554,557,560,563,566,569,571,574,577,580,583,586,589,592,595,598,601,604,607,610,613,616,619,622,624,627,630,633,636,639,642,645,648,651,654,657,660,663,666,669,672],{"path":332,"title":333},"\u002Fdocs\u002Fbenchmarks","Benchmarks",{"path":335,"title":336},"\u002Fdocs\u002Fbun-users","For bun users",{"path":338,"title":339},"\u002Fdocs\u002Fcli\u002Fadd","scpm add",{"path":341,"title":342},"\u002Fdocs\u002Fcli\u002Fapprove-builds","scpm approve-builds",{"path":344,"title":345},"\u002Fdocs\u002Fcli\u002Faudit","scpm audit",{"path":347,"title":348},"\u002Fdocs\u002Fcli\u002Fbin","scpm bin",{"path":350,"title":351},"\u002Fdocs\u002Fcli\u002Fcache","scpm cache",{"path":353,"title":354},"\u002Fdocs\u002Fcli\u002Fcache\u002Fdelete","scpm cache delete",{"path":356,"title":357},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist","scpm cache list",{"path":359,"title":360},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist-registries","scpm cache list-registries",{"path":362,"title":363},"\u002Fdocs\u002Fcli\u002Fcache\u002Fprune","scpm cache prune",{"path":365,"title":366},"\u002Fdocs\u002Fcli\u002Fcache\u002Fview","scpm cache view",{"path":368,"title":369},"\u002Fdocs\u002Fcli\u002Fcat-file","scpm cat-file",{"path":371,"title":372},"\u002Fdocs\u002Fcli\u002Fcat-index","scpm cat-index",{"path":374,"title":375},"\u002Fdocs\u002Fcli\u002Fcheck","scpm check",{"path":377,"title":378},"\u002Fdocs\u002Fcli\u002Fci","scpm ci",{"path":380,"title":381},"\u002Fdocs\u002Fcli\u002Fclean","scpm clean",{"path":383,"title":384},"\u002Fdocs\u002Fcli\u002Fcompletion","scpm completion",{"path":386,"title":387},"\u002Fdocs\u002Fcli\u002Fconfig","scpm config",{"path":389,"title":390},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fdelete","scpm config delete",{"path":392,"title":393},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fexplain","scpm config explain",{"path":395,"title":396},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ffind","scpm config find",{"path":398,"title":399},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fget","scpm config get",{"path":401,"title":402},"\u002Fdocs\u002Fcli\u002Fconfig\u002Flist","scpm config list",{"path":404,"title":405},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fset","scpm config set",{"path":407,"title":408},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ftui","scpm config tui",{"path":410,"title":411},"\u002Fdocs\u002Fcli\u002Fcreate","scpm create",{"path":413,"title":414},"\u002Fdocs\u002Fcli\u002Fdedupe","scpm dedupe",{"path":416,"title":417},"\u002Fdocs\u002Fcli\u002Fdeploy","scpm deploy",{"path":419,"title":420},"\u002Fdocs\u002Fcli\u002Fdeprecate","scpm deprecate",{"path":422,"title":423},"\u002Fdocs\u002Fcli\u002Fdeprecations","scpm deprecations",{"path":425,"title":426},"\u002Fdocs\u002Fcli\u002Fdiag","scpm diag",{"path":428,"title":429},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fanalyze","scpm diag analyze",{"path":431,"title":432},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fcompare","scpm diag compare",{"path":434,"title":435},"\u002Fdocs\u002Fcli\u002Fdist-tag","scpm dist-tag",{"path":437,"title":438},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fadd","scpm dist-tag add",{"path":440,"title":441},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fls","scpm dist-tag ls",{"path":443,"title":444},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Frm","scpm dist-tag rm",{"path":446,"title":447},"\u002Fdocs\u002Fcli\u002Fdlx","scpm dlx",{"path":449,"title":450},"\u002Fdocs\u002Fcli\u002Fdoctor","scpm doctor",{"path":452,"title":453},"\u002Fdocs\u002Fcli\u002Fexec","scpm exec",{"path":455,"title":456},"\u002Fdocs\u002Fcli\u002Ffetch","scpm fetch",{"path":458,"title":459},"\u002Fdocs\u002Fcli\u002Ffind-hash","scpm find-hash",{"path":461,"title":462},"\u002Fdocs\u002Fcli\u002Fignored-builds","scpm ignored-builds",{"path":464,"title":84},"\u002Fdocs\u002Fcli\u002Fimport",{"path":466,"title":467},"\u002Fdocs\u002Fcli","scpm",{"path":469,"title":470},"\u002Fdocs\u002Fcli\u002Finit","scpm init",{"path":472,"title":88},"\u002Fdocs\u002Fcli\u002Finstall",{"path":474,"title":475},"\u002Fdocs\u002Fcli\u002Flicenses","scpm licenses",{"path":477,"title":478},"\u002Fdocs\u002Fcli\u002Flink","scpm link",{"path":480,"title":481},"\u002Fdocs\u002Fcli\u002Flist","scpm list",{"path":483,"title":484},"\u002Fdocs\u002Fcli\u002Flogin","scpm login",{"path":486,"title":487},"\u002Fdocs\u002Fcli\u002Flogout","scpm logout",{"path":489,"title":490},"\u002Fdocs\u002Fcli\u002Foutdated","scpm outdated",{"path":492,"title":493},"\u002Fdocs\u002Fcli\u002Fpack","scpm pack",{"path":495,"title":496},"\u002Fdocs\u002Fcli\u002Fpatch","scpm patch",{"path":498,"title":499},"\u002Fdocs\u002Fcli\u002Fpatch-commit","scpm patch-commit",{"path":501,"title":502},"\u002Fdocs\u002Fcli\u002Fpatch-remove","scpm patch-remove",{"path":504,"title":505},"\u002Fdocs\u002Fcli\u002Fpeers","scpm peers",{"path":507,"title":508},"\u002Fdocs\u002Fcli\u002Fpeers\u002Fcheck","scpm peers check",{"path":510,"title":511},"\u002Fdocs\u002Fcli\u002Fprune","scpm prune",{"path":513,"title":514},"\u002Fdocs\u002Fcli\u002Fpublish","scpm publish",{"path":516,"title":517},"\u002Fdocs\u002Fcli\u002Fpurge","scpm purge",{"path":519,"title":520},"\u002Fdocs\u002Fcli\u002Fquery","scpm query",{"path":522,"title":523},"\u002Fdocs\u002Fcli\u002Frebuild","scpm rebuild",{"path":525,"title":526},"\u002Fdocs\u002Fcli\u002Frecursive","scpm recursive",{"path":528,"title":529},"\u002Fdocs\u002Fcli\u002Fremove","scpm remove",{"path":531,"title":532},"\u002Fdocs\u002Fcli\u002Frestart","scpm restart",{"path":534,"title":535},"\u002Fdocs\u002Fcli\u002Froot","scpm root",{"path":537,"title":538},"\u002Fdocs\u002Fcli\u002Frun","scpm run",{"path":540,"title":541},"\u002Fdocs\u002Fcli\u002Fsbom","scpm sbom",{"path":543,"title":544},"\u002Fdocs\u002Fcli\u002Fsponsors","scpm sponsors",{"path":546,"title":547},"\u002Fdocs\u002Fcli\u002Fstage","scpm stage",{"path":549,"title":550},"\u002Fdocs\u002Fcli\u002Fstart","scpm start",{"path":552,"title":553},"\u002Fdocs\u002Fcli\u002Fstop","scpm stop",{"path":555,"title":556},"\u002Fdocs\u002Fcli\u002Fstore","scpm store",{"path":558,"title":559},"\u002Fdocs\u002Fcli\u002Fstore\u002Fadd","scpm store add",{"path":561,"title":562},"\u002Fdocs\u002Fcli\u002Fstore\u002Fpath","scpm store path",{"path":564,"title":565},"\u002Fdocs\u002Fcli\u002Fstore\u002Fprune","scpm store prune",{"path":567,"title":568},"\u002Fdocs\u002Fcli\u002Fstore\u002Fstatus","scpm store status",{"path":570,"title":56},"\u002Fdocs\u002Fcli\u002Ftest",{"path":572,"title":573},"\u002Fdocs\u002Fcli\u002Fundeprecate","scpm undeprecate",{"path":575,"title":576},"\u002Fdocs\u002Fcli\u002Funlink","scpm unlink",{"path":578,"title":579},"\u002Fdocs\u002Fcli\u002Funpublish","scpm unpublish",{"path":581,"title":582},"\u002Fdocs\u002Fcli\u002Fupdate","scpm update",{"path":584,"title":585},"\u002Fdocs\u002Fcli\u002Fversion","scpm version",{"path":587,"title":588},"\u002Fdocs\u002Fcli\u002Fview","scpm view",{"path":590,"title":591},"\u002Fdocs\u002Fcli\u002Fwhy","scpm why",{"path":593,"title":594},"\u002Fdocs\u002Ferror-codes","Error and warning codes",{"path":596,"title":597},"\u002Fdocs\u002Fgetting-started","Getting Started",{"path":599,"title":600},"\u002Fdocs\u002Fguide","Guide",{"path":602,"title":603},"\u002Fdocs","SCPM Documentation",{"path":605,"title":606},"\u002Fdocs\u002Finstallation","Installation",{"path":608,"title":609},"\u002Fdocs\u002Fnpm-users","For npm users",{"path":611,"title":612},"\u002Fdocs\u002Fpackage-manager\u002Fconfiguration","Configuration",{"path":614,"title":615},"\u002Fdocs\u002Fpackage-manager\u002Fdependencies","Manage dependencies",{"path":617,"title":618},"\u002Fdocs\u002Fpackage-manager\u002Fglobal-virtual-store","Global virtual store",{"path":620,"title":621},"\u002Fdocs\u002Fpackage-manager\u002Finstall","Install dependencies",{"path":294,"title":623},"Jailed dependency builds",{"path":625,"title":626},"\u002Fdocs\u002Fpackage-manager\u002Flifecycle-scripts","Lifecycle scripts",{"path":628,"title":629},"\u002Fdocs\u002Fpackage-manager\u002Flockfiles","Lockfiles",{"path":631,"title":632},"\u002Fdocs\u002Fpackage-manager\u002Fnode-modules","node_modules layout",{"path":634,"title":635},"\u002Fdocs\u002Fpackage-manager\u002Fpublishing","Publishing",{"path":637,"title":638},"\u002Fdocs\u002Fpackage-manager\u002Fregistry-auth","Registry and auth",{"path":640,"title":641},"\u002Fdocs\u002Fpackage-manager\u002Fscripts","Run scripts and binaries",{"path":643,"title":644},"\u002Fdocs\u002Fpackage-manager\u002Fsecurity-scanner","Security scanner",{"path":646,"title":647},"\u002Fdocs\u002Fpackage-manager\u002Fworkspaces","Workspaces",{"path":649,"title":650},"\u002Fdocs\u002Fpnpm-users","For pnpm users",{"path":652,"title":653},"\u002Fdocs\u002Fsecurity","Security",{"path":655,"title":656},"\u002Fdocs\u002Fsettings\u002Fcli","CLI Settings",{"path":658,"title":659},"\u002Fdocs\u002Fsettings\u002Fenv","Environment Settings",{"path":661,"title":662},"\u002Fdocs\u002Fsettings","Settings",{"path":664,"title":665},"\u002Fdocs\u002Fsettings\u002Fnpmrc",".npmrc Settings",{"path":667,"title":668},"\u002Fdocs\u002Fsettings\u002Fworkspace-yaml","Workspace YAML Settings",{"path":670,"title":671},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting",{"path":326,"title":5},1780584396929]