A monorepo manager for the bun workspaces.
This is an attempt to replicate pnpm's recursive command in bun workspaces. If there are any issues with the package, feel free to open an issue or fork & pull request. Or just modify the bun-pkg.ts file in the scripts folder within your own project to your liking.
bun pkg --help
bun pkg -a build # build all packages using bun build
bun pkg -a run build # run build script in all packages
bun pkg package-a build # build package-a using bun build
bun pkg package-a run build # run build script in package-a
bun pkg -n package-a init # init package-a using bun init
bun pkg -n package-a create vite # create vite app in package-a
# create a new package with a custom package.json using bun-pkg.json,
# see configuration section:
bun pkg -n package-a init --use-config
bunx bun-pkg
echo {} > bun-pkg.json # See configuration section below for more details
Run the following command to download the script:
mkdir -p "scripts"
curl "https://raw.githubusercontent.com/thejasonxie/bun-pkg/main/scripts/bun-pkg.ts" > "scripts/bun-pkg.ts"
Add the following to your package.json
's scripts:
"scripts": {
"pkg": "bun scripts/bun-pkg.ts"
}
Then if you want to set the package.json of new packages, create a bun-pkg.json
and add a template package.json to it. See configuration section below.
echo {} > bun-pkg.json # See configuration section below for more details
In root of the monorepo, create a bun-pkg.json
file to configure the package.json of a new package when --use-config flag is used.
bun-pkg.json
basically mirror the package.json you want to be created for new packages.
${PACKAGE}
will be replaced with the package name.
Any 'scripts', 'dependencies', 'devDependencies', 'peerDependencies' lines will be appended to the new package.json.
{
"name": "@organization/${PACKAGE}",
"version": "0.0.1",
"private": false,
"publishConfig": {
"@organization:registry": "https://npm.pkg.github.com"
},
"repository": {
"type": "git",
"url": "https://github.com/organization/${PACKAGE}"
}
}