[{"data":1,"prerenderedAt":598},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fbun-users":3,"docs-pages":256},{"id":4,"title":5,"body":6,"description":248,"extension":249,"meta":250,"navigation":251,"path":252,"seo":253,"stem":254,"__hash__":255},"docs\u002Fdocs\u002Fbun-users.md","For bun users",{"type":7,"value":8,"toc":242},"minimark",[9,13,26,31,47,66,80,90,99,108,112,129,144,148,230,238],[10,11,5],"h1",{"id":12},"for-bun-users",[14,15,16,17,21,22,25],"p",{},"scpm can install directly from Bun lockfiles. You do not need to delete\n",[18,19,20],"code",{},"bun.lock"," or remove ",[18,23,24],{},"node_modules"," before trying scpm.",[27,28,30],"h2",{"id":29},"try-the-bun-lockfile","Try the Bun lockfile",[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 Bun 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,76,79],{},"scpm reads and updates the text-format ",[18,70,20],{}," at ",[18,73,74],{},"lockfileVersion: 1","\nin place and installs packages into ",[18,77,78],{},"node_modules\u002F.scpm\u002F",".",[14,81,82,83,86,87,89],{},"scpm does not read Bun's older binary ",[18,84,85],{},"bun.lockb"," format. Projects still\non ",[18,88,85],{}," can generate the text lockfile with a modern Bun once:",[32,91,93],{"className":34,"code":92,"language":36,"meta":37,"style":37},"bun install --save-text-lockfile\n",[18,94,95],{"__ignoreMap":37},[41,96,97],{"class":43,"line":44},[41,98,92],{},[14,100,101,102,104,105,107],{},"Commit the resulting ",[18,103,20],{}," and drop ",[18,106,85],{}," before switching to\nscpm.",[27,109,111],{"id":110},"keep-bun-working-during-rollout","Keep Bun working during rollout",[14,113,114,115,117,118,121,122,125,126,128],{},"Commit the updated ",[18,116,20],{}," so both Bun and scpm users see the same\nresolved versions. You do not need ",[18,119,120],{},"scpm import"," for a normal rollout;\n",[18,123,124],{},"scpm install"," keeps ",[18,127,20],{}," as the shared source of truth.",[14,130,131,132,134,135,138,139,141,142,79],{},"Use ",[18,133,120],{}," only if the team intentionally wants to convert the\nproject to ",[18,136,137],{},"scpm-lock.yaml",". After import succeeds, remove ",[18,140,20],{}," so\nfuture installs keep writing ",[18,143,137],{},[27,145,147],{"id":146},"differences-from-bun","Differences from Bun",[149,150,151,155,161,176],"ul",{},[152,153,154],"li",{},"scpm keeps package files in a global content-addressable store.",[152,156,157,158,160],{},"scpm produces an isolated symlink layout under ",[18,159,78],{},"\nrather than Bun's hoisted tree.",[152,162,163,164,171,172,175],{},"scpm does not manage a JavaScript runtime. Use\n",[165,166,170],"a",{"href":167,"rel":168},"https:\u002F\u002Fmise.jdx.dev",[169],"nofollow","mise"," (",[18,173,174],{},"mise use node@22",") if you need a Node\nversion alongside or in place of Bun.",[152,177,178,179,53,182,53,185,188,189,192,193,196,197,200,201,204,205,208,209,212,213,216,217,220,221,224,225,229],{},"Dependency lifecycle scripts (",[18,180,181],{},"preinstall",[18,183,184],{},"install",[18,186,187],{},"postinstall",")\nare gated by an allowlist. scpm reads Bun's top-level\n",[18,190,191],{},"trustedDependencies"," array in addition to pnpm's\n",[18,194,195],{},"pnpm.allowBuilds"," \u002F ",[18,198,199],{},"pnpm.onlyBuiltDependencies",", so an existing\nBun manifest keeps running its install scripts without edits.\nInstall writes unreviewed packages into ",[18,202,203],{},"scpm-workspace.yaml","'s\n",[18,206,207],{},"allowBuilds"," with ",[18,210,211],{},"false"," (or ",[18,214,215],{},"pnpm-workspace.yaml"," if one already\nexists); ",[18,218,219],{},"scpm approve-builds"," flips reviewed entries to ",[18,222,223],{},"true",". Approved dependency builds can also run in a\n",[165,226,228],{"href":227},"\u002Fdocs\u002Fpackage-manager\u002Fjailed-builds","jail"," with package-specific env, path,\nand network permissions.",[14,231,232,233],{},"Reference: ",[165,234,237],{"href":235,"rel":236},"https:\u002F\u002Fbun.sh\u002Fdocs\u002Fcli\u002Finstall",[169],"bun install",[239,240,241],"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":37,"searchDepth":243,"depth":243,"links":244},2,[245,246,247],{"id":29,"depth":243,"text":30},{"id":110,"depth":243,"text":111},{"id":146,"depth":243,"text":147},"scpm can install directly from Bun lockfiles. You do not need to delete\nbun.lock or remove node_modules before trying scpm.","md",{},true,"\u002Fdocs\u002Fbun-users",{"title":5,"description":248},"docs\u002Fbun-users","kb73xg2_yPBcaBN_KF6u4zs0sqXXSM-0TegSj7TvIpY",[257,260,261,264,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,388,391,394,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,494,497,500,503,506,509,512,515,518,521,524,527,530,533,536,539,542,545,547,550,553,556,559,562,565,568,571,574,577,580,583,586,589,592,595],{"path":258,"title":259},"\u002Fdocs\u002Fbenchmarks","Benchmarks",{"path":252,"title":5},{"path":262,"title":263},"\u002Fdocs\u002Fcli\u002Fadd","scpm add",{"path":265,"title":219},"\u002Fdocs\u002Fcli\u002Fapprove-builds",{"path":267,"title":268},"\u002Fdocs\u002Fcli\u002Faudit","scpm audit",{"path":270,"title":271},"\u002Fdocs\u002Fcli\u002Fbin","scpm bin",{"path":273,"title":274},"\u002Fdocs\u002Fcli\u002Fcache","scpm cache",{"path":276,"title":277},"\u002Fdocs\u002Fcli\u002Fcache\u002Fdelete","scpm cache delete",{"path":279,"title":280},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist","scpm cache list",{"path":282,"title":283},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist-registries","scpm cache list-registries",{"path":285,"title":286},"\u002Fdocs\u002Fcli\u002Fcache\u002Fprune","scpm cache prune",{"path":288,"title":289},"\u002Fdocs\u002Fcli\u002Fcache\u002Fview","scpm cache view",{"path":291,"title":292},"\u002Fdocs\u002Fcli\u002Fcat-file","scpm cat-file",{"path":294,"title":295},"\u002Fdocs\u002Fcli\u002Fcat-index","scpm cat-index",{"path":297,"title":298},"\u002Fdocs\u002Fcli\u002Fcheck","scpm check",{"path":300,"title":301},"\u002Fdocs\u002Fcli\u002Fci","scpm ci",{"path":303,"title":304},"\u002Fdocs\u002Fcli\u002Fclean","scpm clean",{"path":306,"title":307},"\u002Fdocs\u002Fcli\u002Fcompletion","scpm completion",{"path":309,"title":310},"\u002Fdocs\u002Fcli\u002Fconfig","scpm config",{"path":312,"title":313},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fdelete","scpm config delete",{"path":315,"title":316},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fexplain","scpm config explain",{"path":318,"title":319},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ffind","scpm config find",{"path":321,"title":322},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fget","scpm config get",{"path":324,"title":325},"\u002Fdocs\u002Fcli\u002Fconfig\u002Flist","scpm config list",{"path":327,"title":328},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fset","scpm config set",{"path":330,"title":331},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ftui","scpm config tui",{"path":333,"title":334},"\u002Fdocs\u002Fcli\u002Fcreate","scpm create",{"path":336,"title":337},"\u002Fdocs\u002Fcli\u002Fdedupe","scpm dedupe",{"path":339,"title":340},"\u002Fdocs\u002Fcli\u002Fdeploy","scpm deploy",{"path":342,"title":343},"\u002Fdocs\u002Fcli\u002Fdeprecate","scpm deprecate",{"path":345,"title":346},"\u002Fdocs\u002Fcli\u002Fdeprecations","scpm deprecations",{"path":348,"title":349},"\u002Fdocs\u002Fcli\u002Fdiag","scpm diag",{"path":351,"title":352},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fanalyze","scpm diag analyze",{"path":354,"title":355},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fcompare","scpm diag compare",{"path":357,"title":358},"\u002Fdocs\u002Fcli\u002Fdist-tag","scpm dist-tag",{"path":360,"title":361},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fadd","scpm dist-tag add",{"path":363,"title":364},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fls","scpm dist-tag ls",{"path":366,"title":367},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Frm","scpm dist-tag rm",{"path":369,"title":370},"\u002Fdocs\u002Fcli\u002Fdlx","scpm dlx",{"path":372,"title":373},"\u002Fdocs\u002Fcli\u002Fdoctor","scpm doctor",{"path":375,"title":376},"\u002Fdocs\u002Fcli\u002Fexec","scpm exec",{"path":378,"title":379},"\u002Fdocs\u002Fcli\u002Ffetch","scpm fetch",{"path":381,"title":382},"\u002Fdocs\u002Fcli\u002Ffind-hash","scpm find-hash",{"path":384,"title":385},"\u002Fdocs\u002Fcli\u002Fignored-builds","scpm ignored-builds",{"path":387,"title":120},"\u002Fdocs\u002Fcli\u002Fimport",{"path":389,"title":390},"\u002Fdocs\u002Fcli","scpm",{"path":392,"title":393},"\u002Fdocs\u002Fcli\u002Finit","scpm init",{"path":395,"title":124},"\u002Fdocs\u002Fcli\u002Finstall",{"path":397,"title":398},"\u002Fdocs\u002Fcli\u002Flicenses","scpm licenses",{"path":400,"title":401},"\u002Fdocs\u002Fcli\u002Flink","scpm link",{"path":403,"title":404},"\u002Fdocs\u002Fcli\u002Flist","scpm list",{"path":406,"title":407},"\u002Fdocs\u002Fcli\u002Flogin","scpm login",{"path":409,"title":410},"\u002Fdocs\u002Fcli\u002Flogout","scpm logout",{"path":412,"title":413},"\u002Fdocs\u002Fcli\u002Foutdated","scpm outdated",{"path":415,"title":416},"\u002Fdocs\u002Fcli\u002Fpack","scpm pack",{"path":418,"title":419},"\u002Fdocs\u002Fcli\u002Fpatch","scpm patch",{"path":421,"title":422},"\u002Fdocs\u002Fcli\u002Fpatch-commit","scpm patch-commit",{"path":424,"title":425},"\u002Fdocs\u002Fcli\u002Fpatch-remove","scpm patch-remove",{"path":427,"title":428},"\u002Fdocs\u002Fcli\u002Fpeers","scpm peers",{"path":430,"title":431},"\u002Fdocs\u002Fcli\u002Fpeers\u002Fcheck","scpm peers check",{"path":433,"title":434},"\u002Fdocs\u002Fcli\u002Fprune","scpm prune",{"path":436,"title":437},"\u002Fdocs\u002Fcli\u002Fpublish","scpm publish",{"path":439,"title":440},"\u002Fdocs\u002Fcli\u002Fpurge","scpm purge",{"path":442,"title":443},"\u002Fdocs\u002Fcli\u002Fquery","scpm query",{"path":445,"title":446},"\u002Fdocs\u002Fcli\u002Frebuild","scpm rebuild",{"path":448,"title":449},"\u002Fdocs\u002Fcli\u002Frecursive","scpm recursive",{"path":451,"title":452},"\u002Fdocs\u002Fcli\u002Fremove","scpm remove",{"path":454,"title":455},"\u002Fdocs\u002Fcli\u002Frestart","scpm restart",{"path":457,"title":458},"\u002Fdocs\u002Fcli\u002Froot","scpm root",{"path":460,"title":461},"\u002Fdocs\u002Fcli\u002Frun","scpm run",{"path":463,"title":464},"\u002Fdocs\u002Fcli\u002Fsbom","scpm sbom",{"path":466,"title":467},"\u002Fdocs\u002Fcli\u002Fsponsors","scpm sponsors",{"path":469,"title":470},"\u002Fdocs\u002Fcli\u002Fstage","scpm stage",{"path":472,"title":473},"\u002Fdocs\u002Fcli\u002Fstart","scpm start",{"path":475,"title":476},"\u002Fdocs\u002Fcli\u002Fstop","scpm stop",{"path":478,"title":479},"\u002Fdocs\u002Fcli\u002Fstore","scpm store",{"path":481,"title":482},"\u002Fdocs\u002Fcli\u002Fstore\u002Fadd","scpm store add",{"path":484,"title":485},"\u002Fdocs\u002Fcli\u002Fstore\u002Fpath","scpm store path",{"path":487,"title":488},"\u002Fdocs\u002Fcli\u002Fstore\u002Fprune","scpm store prune",{"path":490,"title":491},"\u002Fdocs\u002Fcli\u002Fstore\u002Fstatus","scpm store status",{"path":493,"title":56},"\u002Fdocs\u002Fcli\u002Ftest",{"path":495,"title":496},"\u002Fdocs\u002Fcli\u002Fundeprecate","scpm undeprecate",{"path":498,"title":499},"\u002Fdocs\u002Fcli\u002Funlink","scpm unlink",{"path":501,"title":502},"\u002Fdocs\u002Fcli\u002Funpublish","scpm unpublish",{"path":504,"title":505},"\u002Fdocs\u002Fcli\u002Fupdate","scpm update",{"path":507,"title":508},"\u002Fdocs\u002Fcli\u002Fversion","scpm version",{"path":510,"title":511},"\u002Fdocs\u002Fcli\u002Fview","scpm view",{"path":513,"title":514},"\u002Fdocs\u002Fcli\u002Fwhy","scpm why",{"path":516,"title":517},"\u002Fdocs\u002Ferror-codes","Error and warning codes",{"path":519,"title":520},"\u002Fdocs\u002Fgetting-started","Getting Started",{"path":522,"title":523},"\u002Fdocs\u002Fguide","Guide",{"path":525,"title":526},"\u002Fdocs","SCPM Documentation",{"path":528,"title":529},"\u002Fdocs\u002Finstallation","Installation",{"path":531,"title":532},"\u002Fdocs\u002Fnpm-users","For npm users",{"path":534,"title":535},"\u002Fdocs\u002Fpackage-manager\u002Fconfiguration","Configuration",{"path":537,"title":538},"\u002Fdocs\u002Fpackage-manager\u002Fdependencies","Manage dependencies",{"path":540,"title":541},"\u002Fdocs\u002Fpackage-manager\u002Fglobal-virtual-store","Global virtual store",{"path":543,"title":544},"\u002Fdocs\u002Fpackage-manager\u002Finstall","Install dependencies",{"path":227,"title":546},"Jailed dependency builds",{"path":548,"title":549},"\u002Fdocs\u002Fpackage-manager\u002Flifecycle-scripts","Lifecycle scripts",{"path":551,"title":552},"\u002Fdocs\u002Fpackage-manager\u002Flockfiles","Lockfiles",{"path":554,"title":555},"\u002Fdocs\u002Fpackage-manager\u002Fnode-modules","node_modules layout",{"path":557,"title":558},"\u002Fdocs\u002Fpackage-manager\u002Fpublishing","Publishing",{"path":560,"title":561},"\u002Fdocs\u002Fpackage-manager\u002Fregistry-auth","Registry and auth",{"path":563,"title":564},"\u002Fdocs\u002Fpackage-manager\u002Fscripts","Run scripts and binaries",{"path":566,"title":567},"\u002Fdocs\u002Fpackage-manager\u002Fsecurity-scanner","Security scanner",{"path":569,"title":570},"\u002Fdocs\u002Fpackage-manager\u002Fworkspaces","Workspaces",{"path":572,"title":573},"\u002Fdocs\u002Fpnpm-users","For pnpm users",{"path":575,"title":576},"\u002Fdocs\u002Fsecurity","Security",{"path":578,"title":579},"\u002Fdocs\u002Fsettings\u002Fcli","CLI Settings",{"path":581,"title":582},"\u002Fdocs\u002Fsettings\u002Fenv","Environment Settings",{"path":584,"title":585},"\u002Fdocs\u002Fsettings","Settings",{"path":587,"title":588},"\u002Fdocs\u002Fsettings\u002Fnpmrc",".npmrc Settings",{"path":590,"title":591},"\u002Fdocs\u002Fsettings\u002Fworkspace-yaml","Workspace YAML Settings",{"path":593,"title":594},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting",{"path":596,"title":597},"\u002Fdocs\u002Fyarn-users","For yarn users",1780584396928]