[{"data":1,"prerenderedAt":661},["ShallowReactive",2],{"docs-page:\u002Fdocs\u002Fpackage-manager\u002Fscripts":3,"docs-pages":317},{"id":4,"title":5,"body":6,"description":16,"extension":310,"meta":311,"navigation":312,"path":313,"seo":314,"stem":315,"__hash__":316},"docs\u002Fdocs\u002Fpackage-manager\u002Fscripts.md","Run scripts and binaries",{"type":7,"value":8,"toc":302},"minimark",[9,13,17,22,64,82,97,104,113,128,132,147,160,164,179,196,205,225,249,259,263,288,298],[10,11,5],"h1",{"id":12},"run-scripts-and-binaries",[14,15,16],"p",{},"scpm follows npm and pnpm script conventions while adding an install-state\ncheck before script execution.",[18,19,21],"h2",{"id":20},"scripts","Scripts",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-sh shiki shiki-themes github-light github-dark","scpmr build\nscpm test\nscpm start\nscpm stop\nscpm restart\n","sh","",[30,31,32,40,46,52,58],"code",{"__ignoreMap":28},[33,34,37],"span",{"class":35,"line":36},"line",1,[33,38,39],{},"scpmr build\n",[33,41,43],{"class":35,"line":42},2,[33,44,45],{},"scpm test\n",[33,47,49],{"class":35,"line":48},3,[33,50,51],{},"scpm start\n",[33,53,55],{"class":35,"line":54},4,[33,56,57],{},"scpm stop\n",[33,59,61],{"class":35,"line":60},5,[33,62,63],{},"scpm restart\n",[14,65,66,69,70,73,74,77,78,81],{},[30,67,68],{},"scpmr"," is shorthand for ",[30,71,72],{},"scpm run",". Before running a script, scpm checks\n",[30,75,76],{},"node_modules\u002F.scpm-state",". If the manifest or lockfile changed, scpm installs\nfirst. Use ",[30,79,80],{},"--no-install"," when you want to skip that check.",[23,83,85],{"className":25,"code":84,"language":27,"meta":28,"style":28},"scpm run --no-install build\nscpm test --no-install\n",[30,86,87,92],{"__ignoreMap":28},[33,88,89],{"class":35,"line":36},[33,90,91],{},"scpm run --no-install build\n",[33,93,94],{"class":35,"line":42},[33,95,96],{},"scpm test --no-install\n",[14,98,99,100,103],{},"Use ",[30,101,102],{},"--if-present"," for optional scripts:",[23,105,107],{"className":25,"code":106,"language":27,"meta":28,"style":28},"scpm run --if-present lint\n",[30,108,109],{"__ignoreMap":28},[33,110,111],{"class":35,"line":36},[33,112,106],{},[14,114,115,116,119,120,123,124,127],{},"When no ",[30,117,118],{},"package.json"," script matches, ",[30,121,122],{},"scpm run \u003Cname>"," falls back to a\nlocal binary with the same name in ",[30,125,126],{},"node_modules\u002F.bin",". Scripts still win over\nbins, so a project can override a tool command with its own script.",[18,129,131],{"id":130},"local-binaries","Local binaries",[23,133,135],{"className":25,"code":134,"language":27,"meta":28,"style":28},"scpm exec vitest\nscpm exec tsc -- --noEmit\n",[30,136,137,142],{"__ignoreMap":28},[33,138,139],{"class":35,"line":36},[33,140,141],{},"scpm exec vitest\n",[33,143,144],{"class":35,"line":42},[33,145,146],{},"scpm exec tsc -- --noEmit\n",[14,148,149,152,153,155,156,159],{},[30,150,151],{},"exec"," runs a binary from the project context with ",[30,154,126],{}," on\n",[30,157,158],{},"PATH",".",[18,161,163],{"id":162},"one-off-binaries","One-off binaries",[23,165,167],{"className":25,"code":166,"language":27,"meta":28,"style":28},"scpmx cowsay hi\nscpmx -p create-vite create-vite my-app\n",[30,168,169,174],{"__ignoreMap":28},[33,170,171],{"class":35,"line":36},[33,172,173],{},"scpmx cowsay hi\n",[33,175,176],{"class":35,"line":42},[33,177,178],{},"scpmx -p create-vite create-vite my-app\n",[14,180,181,69,184,187,188,191,192,195],{},[30,182,183],{},"scpmx",[30,185,186],{},"scpm dlx",". It first checks for a matching local binary\nin the current project. If none is installed, it installs into a throwaway\nproject and runs the requested binary. Pass ",[30,189,190],{},"-p"," \u002F ",[30,193,194],{},"--package"," when the package\nname differs from the binary name or when you want to force a throwaway install.",[18,197,199,200,202,203],{"id":198},"shortcuts-scpmr-and-scpmx","Shortcuts: ",[30,201,68],{}," and ",[30,204,183],{},[14,206,207,202,209,211,212,202,214,216,217,220,221,224],{},[30,208,68],{},[30,210,183],{}," are multicall shims for ",[30,213,72],{},[30,215,186],{},".\nThey ship side by side with ",[30,218,219],{},"scpm"," in the release archives and dispatch\npurely on ",[30,222,223],{},"argv[0]",", so any flag that works on the full command works on\nthe shim:",[23,226,228],{"className":25,"code":227,"language":27,"meta":28,"style":28},"scpmr build            # scpm run build\nscpmr -r test          # scpm -r run test\nscpmx cowsay hi        # scpm dlx cowsay hi\nscpmx -p create-vite create-vite my-app\n",[30,229,230,235,240,245],{"__ignoreMap":28},[33,231,232],{"class":35,"line":36},[33,233,234],{},"scpmr build            # scpm run build\n",[33,236,237],{"class":35,"line":42},[33,238,239],{},"scpmr -r test          # scpm -r run test\n",[33,241,242],{"class":35,"line":48},[33,243,244],{},"scpmx cowsay hi        # scpm dlx cowsay hi\n",[33,246,247],{"class":35,"line":54},[33,248,178],{},[14,250,251,252,202,254,256,257,159],{},"The shims are identical scpm binaries with a different filename; there is\nnothing to configure. If you install scpm by hand — for example by\ncopying the binary out of the tarball — bring ",[30,253,68],{},[30,255,183],{}," along so\nthe shortcuts resolve on ",[30,258,158],{},[18,260,262],{"id":261},"workspace-runs","Workspace runs",[23,264,266],{"className":25,"code":265,"language":27,"meta":28,"style":28},"scpm -r run build\nscpm -F '@scope\u002F*' run test\nscpm -F '.\u002Fpackages\u002Fapi' exec tsc -- --noEmit\nscpm -F 'api...' run build\n",[30,267,268,273,278,283],{"__ignoreMap":28},[33,269,270],{"class":35,"line":36},[33,271,272],{},"scpm -r run build\n",[33,274,275],{"class":35,"line":42},[33,276,277],{},"scpm -F '@scope\u002F*' run test\n",[33,279,280],{"class":35,"line":48},[33,281,282],{},"scpm -F '.\u002Fpackages\u002Fapi' exec tsc -- --noEmit\n",[33,284,285],{"class":35,"line":54},[33,286,287],{},"scpm -F 'api...' run build\n",[14,289,290,293,294,297],{},[30,291,292],{},"-r"," is sugar for ",[30,295,296],{},"--filter=*",". Filters support exact names, globs, paths,\ndependency\u002Fdependent graph selectors, git-ref selectors, and exclusions.",[299,300,301],"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":28,"searchDepth":42,"depth":42,"links":303},[304,305,306,307,309],{"id":20,"depth":42,"text":21},{"id":130,"depth":42,"text":131},{"id":162,"depth":42,"text":163},{"id":198,"depth":42,"text":308},"Shortcuts: scpmr and scpmx",{"id":261,"depth":42,"text":262},"md",{},true,"\u002Fdocs\u002Fpackage-manager\u002Fscripts",{"title":5,"description":16},"docs\u002Fpackage-manager\u002Fscripts","6tDVpD2pclUrDBp6d7WGFRN3-KsDr3RqGxqSxPLYX04",[318,321,324,327,330,333,336,339,342,345,348,351,354,357,360,363,366,369,372,375,378,381,384,387,390,393,396,399,402,405,408,411,414,417,420,423,426,429,432,434,437,440,443,446,449,452,454,457,460,463,466,469,472,475,478,481,484,487,490,493,496,499,502,505,508,511,514,517,520,523,525,528,531,534,537,540,543,546,549,552,555,558,561,564,567,570,573,576,579,582,585,588,591,594,597,600,603,606,609,612,615,618,621,624,627,628,631,634,637,640,643,646,649,652,655,658],{"path":319,"title":320},"\u002Fdocs\u002Fbenchmarks","Benchmarks",{"path":322,"title":323},"\u002Fdocs\u002Fbun-users","For bun users",{"path":325,"title":326},"\u002Fdocs\u002Fcli\u002Fadd","scpm add",{"path":328,"title":329},"\u002Fdocs\u002Fcli\u002Fapprove-builds","scpm approve-builds",{"path":331,"title":332},"\u002Fdocs\u002Fcli\u002Faudit","scpm audit",{"path":334,"title":335},"\u002Fdocs\u002Fcli\u002Fbin","scpm bin",{"path":337,"title":338},"\u002Fdocs\u002Fcli\u002Fcache","scpm cache",{"path":340,"title":341},"\u002Fdocs\u002Fcli\u002Fcache\u002Fdelete","scpm cache delete",{"path":343,"title":344},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist","scpm cache list",{"path":346,"title":347},"\u002Fdocs\u002Fcli\u002Fcache\u002Flist-registries","scpm cache list-registries",{"path":349,"title":350},"\u002Fdocs\u002Fcli\u002Fcache\u002Fprune","scpm cache prune",{"path":352,"title":353},"\u002Fdocs\u002Fcli\u002Fcache\u002Fview","scpm cache view",{"path":355,"title":356},"\u002Fdocs\u002Fcli\u002Fcat-file","scpm cat-file",{"path":358,"title":359},"\u002Fdocs\u002Fcli\u002Fcat-index","scpm cat-index",{"path":361,"title":362},"\u002Fdocs\u002Fcli\u002Fcheck","scpm check",{"path":364,"title":365},"\u002Fdocs\u002Fcli\u002Fci","scpm ci",{"path":367,"title":368},"\u002Fdocs\u002Fcli\u002Fclean","scpm clean",{"path":370,"title":371},"\u002Fdocs\u002Fcli\u002Fcompletion","scpm completion",{"path":373,"title":374},"\u002Fdocs\u002Fcli\u002Fconfig","scpm config",{"path":376,"title":377},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fdelete","scpm config delete",{"path":379,"title":380},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fexplain","scpm config explain",{"path":382,"title":383},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ffind","scpm config find",{"path":385,"title":386},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fget","scpm config get",{"path":388,"title":389},"\u002Fdocs\u002Fcli\u002Fconfig\u002Flist","scpm config list",{"path":391,"title":392},"\u002Fdocs\u002Fcli\u002Fconfig\u002Fset","scpm config set",{"path":394,"title":395},"\u002Fdocs\u002Fcli\u002Fconfig\u002Ftui","scpm config tui",{"path":397,"title":398},"\u002Fdocs\u002Fcli\u002Fcreate","scpm create",{"path":400,"title":401},"\u002Fdocs\u002Fcli\u002Fdedupe","scpm dedupe",{"path":403,"title":404},"\u002Fdocs\u002Fcli\u002Fdeploy","scpm deploy",{"path":406,"title":407},"\u002Fdocs\u002Fcli\u002Fdeprecate","scpm deprecate",{"path":409,"title":410},"\u002Fdocs\u002Fcli\u002Fdeprecations","scpm deprecations",{"path":412,"title":413},"\u002Fdocs\u002Fcli\u002Fdiag","scpm diag",{"path":415,"title":416},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fanalyze","scpm diag analyze",{"path":418,"title":419},"\u002Fdocs\u002Fcli\u002Fdiag\u002Fcompare","scpm diag compare",{"path":421,"title":422},"\u002Fdocs\u002Fcli\u002Fdist-tag","scpm dist-tag",{"path":424,"title":425},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fadd","scpm dist-tag add",{"path":427,"title":428},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Fls","scpm dist-tag ls",{"path":430,"title":431},"\u002Fdocs\u002Fcli\u002Fdist-tag\u002Frm","scpm dist-tag rm",{"path":433,"title":186},"\u002Fdocs\u002Fcli\u002Fdlx",{"path":435,"title":436},"\u002Fdocs\u002Fcli\u002Fdoctor","scpm doctor",{"path":438,"title":439},"\u002Fdocs\u002Fcli\u002Fexec","scpm exec",{"path":441,"title":442},"\u002Fdocs\u002Fcli\u002Ffetch","scpm fetch",{"path":444,"title":445},"\u002Fdocs\u002Fcli\u002Ffind-hash","scpm find-hash",{"path":447,"title":448},"\u002Fdocs\u002Fcli\u002Fignored-builds","scpm ignored-builds",{"path":450,"title":451},"\u002Fdocs\u002Fcli\u002Fimport","scpm import",{"path":453,"title":219},"\u002Fdocs\u002Fcli",{"path":455,"title":456},"\u002Fdocs\u002Fcli\u002Finit","scpm init",{"path":458,"title":459},"\u002Fdocs\u002Fcli\u002Finstall","scpm install",{"path":461,"title":462},"\u002Fdocs\u002Fcli\u002Flicenses","scpm licenses",{"path":464,"title":465},"\u002Fdocs\u002Fcli\u002Flink","scpm link",{"path":467,"title":468},"\u002Fdocs\u002Fcli\u002Flist","scpm list",{"path":470,"title":471},"\u002Fdocs\u002Fcli\u002Flogin","scpm login",{"path":473,"title":474},"\u002Fdocs\u002Fcli\u002Flogout","scpm logout",{"path":476,"title":477},"\u002Fdocs\u002Fcli\u002Foutdated","scpm outdated",{"path":479,"title":480},"\u002Fdocs\u002Fcli\u002Fpack","scpm pack",{"path":482,"title":483},"\u002Fdocs\u002Fcli\u002Fpatch","scpm patch",{"path":485,"title":486},"\u002Fdocs\u002Fcli\u002Fpatch-commit","scpm patch-commit",{"path":488,"title":489},"\u002Fdocs\u002Fcli\u002Fpatch-remove","scpm patch-remove",{"path":491,"title":492},"\u002Fdocs\u002Fcli\u002Fpeers","scpm peers",{"path":494,"title":495},"\u002Fdocs\u002Fcli\u002Fpeers\u002Fcheck","scpm peers check",{"path":497,"title":498},"\u002Fdocs\u002Fcli\u002Fprune","scpm prune",{"path":500,"title":501},"\u002Fdocs\u002Fcli\u002Fpublish","scpm publish",{"path":503,"title":504},"\u002Fdocs\u002Fcli\u002Fpurge","scpm purge",{"path":506,"title":507},"\u002Fdocs\u002Fcli\u002Fquery","scpm query",{"path":509,"title":510},"\u002Fdocs\u002Fcli\u002Frebuild","scpm rebuild",{"path":512,"title":513},"\u002Fdocs\u002Fcli\u002Frecursive","scpm recursive",{"path":515,"title":516},"\u002Fdocs\u002Fcli\u002Fremove","scpm remove",{"path":518,"title":519},"\u002Fdocs\u002Fcli\u002Frestart","scpm restart",{"path":521,"title":522},"\u002Fdocs\u002Fcli\u002Froot","scpm root",{"path":524,"title":72},"\u002Fdocs\u002Fcli\u002Frun",{"path":526,"title":527},"\u002Fdocs\u002Fcli\u002Fsbom","scpm sbom",{"path":529,"title":530},"\u002Fdocs\u002Fcli\u002Fsponsors","scpm sponsors",{"path":532,"title":533},"\u002Fdocs\u002Fcli\u002Fstage","scpm stage",{"path":535,"title":536},"\u002Fdocs\u002Fcli\u002Fstart","scpm start",{"path":538,"title":539},"\u002Fdocs\u002Fcli\u002Fstop","scpm stop",{"path":541,"title":542},"\u002Fdocs\u002Fcli\u002Fstore","scpm store",{"path":544,"title":545},"\u002Fdocs\u002Fcli\u002Fstore\u002Fadd","scpm store add",{"path":547,"title":548},"\u002Fdocs\u002Fcli\u002Fstore\u002Fpath","scpm store path",{"path":550,"title":551},"\u002Fdocs\u002Fcli\u002Fstore\u002Fprune","scpm store prune",{"path":553,"title":554},"\u002Fdocs\u002Fcli\u002Fstore\u002Fstatus","scpm store status",{"path":556,"title":557},"\u002Fdocs\u002Fcli\u002Ftest","scpm test",{"path":559,"title":560},"\u002Fdocs\u002Fcli\u002Fundeprecate","scpm undeprecate",{"path":562,"title":563},"\u002Fdocs\u002Fcli\u002Funlink","scpm unlink",{"path":565,"title":566},"\u002Fdocs\u002Fcli\u002Funpublish","scpm unpublish",{"path":568,"title":569},"\u002Fdocs\u002Fcli\u002Fupdate","scpm update",{"path":571,"title":572},"\u002Fdocs\u002Fcli\u002Fversion","scpm version",{"path":574,"title":575},"\u002Fdocs\u002Fcli\u002Fview","scpm view",{"path":577,"title":578},"\u002Fdocs\u002Fcli\u002Fwhy","scpm why",{"path":580,"title":581},"\u002Fdocs\u002Ferror-codes","Error and warning codes",{"path":583,"title":584},"\u002Fdocs\u002Fgetting-started","Getting Started",{"path":586,"title":587},"\u002Fdocs\u002Fguide","Guide",{"path":589,"title":590},"\u002Fdocs","SCPM Documentation",{"path":592,"title":593},"\u002Fdocs\u002Finstallation","Installation",{"path":595,"title":596},"\u002Fdocs\u002Fnpm-users","For npm users",{"path":598,"title":599},"\u002Fdocs\u002Fpackage-manager\u002Fconfiguration","Configuration",{"path":601,"title":602},"\u002Fdocs\u002Fpackage-manager\u002Fdependencies","Manage dependencies",{"path":604,"title":605},"\u002Fdocs\u002Fpackage-manager\u002Fglobal-virtual-store","Global virtual store",{"path":607,"title":608},"\u002Fdocs\u002Fpackage-manager\u002Finstall","Install dependencies",{"path":610,"title":611},"\u002Fdocs\u002Fpackage-manager\u002Fjailed-builds","Jailed dependency builds",{"path":613,"title":614},"\u002Fdocs\u002Fpackage-manager\u002Flifecycle-scripts","Lifecycle scripts",{"path":616,"title":617},"\u002Fdocs\u002Fpackage-manager\u002Flockfiles","Lockfiles",{"path":619,"title":620},"\u002Fdocs\u002Fpackage-manager\u002Fnode-modules","node_modules layout",{"path":622,"title":623},"\u002Fdocs\u002Fpackage-manager\u002Fpublishing","Publishing",{"path":625,"title":626},"\u002Fdocs\u002Fpackage-manager\u002Fregistry-auth","Registry and auth",{"path":313,"title":5},{"path":629,"title":630},"\u002Fdocs\u002Fpackage-manager\u002Fsecurity-scanner","Security scanner",{"path":632,"title":633},"\u002Fdocs\u002Fpackage-manager\u002Fworkspaces","Workspaces",{"path":635,"title":636},"\u002Fdocs\u002Fpnpm-users","For pnpm users",{"path":638,"title":639},"\u002Fdocs\u002Fsecurity","Security",{"path":641,"title":642},"\u002Fdocs\u002Fsettings\u002Fcli","CLI Settings",{"path":644,"title":645},"\u002Fdocs\u002Fsettings\u002Fenv","Environment Settings",{"path":647,"title":648},"\u002Fdocs\u002Fsettings","Settings",{"path":650,"title":651},"\u002Fdocs\u002Fsettings\u002Fnpmrc",".npmrc Settings",{"path":653,"title":654},"\u002Fdocs\u002Fsettings\u002Fworkspace-yaml","Workspace YAML Settings",{"path":656,"title":657},"\u002Fdocs\u002Ftroubleshooting","Troubleshooting",{"path":659,"title":660},"\u002Fdocs\u002Fyarn-users","For yarn users",1780584396927]