Workspaces
Workspace support for monorepos. Discovers packages from package.json workspaces or pnpm-workspace.yaml and creates symlinks for cross-package resolution.
Discovering workspaces
import { discoverWorkspaces } from "@run0/jiki";
const workspaces = discoverWorkspaces(container.vfs, "/");
// [{ name: '@app/utils', path: '/packages/utils', version: '1.0.0' }]
Reads workspace patterns from:
package.json→"workspaces": ["packages/*"]pnpm-workspace.yaml→packages: ['packages/*']
Glob patterns supported: packages/*, apps/**
Linking workspaces
import { linkWorkspaces } from "@run0/jiki";
linkWorkspaces(container.vfs, "/", workspaces);
// Creates symlinks: /node_modules/@app/utils → /packages/utils
Resolving workspace: Protocol
import { isWorkspaceProtocol, resolveWorkspaceDep } from "@run0/jiki";
isWorkspaceProtocol("workspace:*"); // true
isWorkspaceProtocol("^1.0.0"); // false
const dep = resolveWorkspaceDep("@app/utils", workspaces);
// { name: '@app/utils', path: '/packages/utils', version: '1.0.0' }
WorkspacePackage
interface WorkspacePackage {
name: string; // package name
path: string; // absolute path in VFS
version: string; // version from package.json
}