Now that snapshots have been merged, Corepack should leverage them to decrease the package managers boot times - similar to how we currently use v8-compile-cache.
The way I imagine it, instead of running yarn.js, we would check whether yarn-${process.version}.blob exists. If it doesn't, create it (by calling the process.execPath binary with the --build-snapshot flag). Otherwise, spawn the blob.
Package managers will need some explicit support for this to work, as they'll need to embed their CLI logic within setDeserializeMainFunction.
Now that snapshots have been merged, Corepack should leverage them to decrease the package managers boot times - similar to how we currently use
v8-compile-cache
.The way I imagine it, instead of running
yarn.js
, we would check whetheryarn-${process.version}.blob
exists. If it doesn't, create it (by calling theprocess.execPath
binary with the--build-snapshot
flag). Otherwise, spawn the blob.Package managers will need some explicit support for this to work, as they'll need to embed their CLI logic within
setDeserializeMainFunction
.