chore: migrate to pnpm for improved monorepo management (#287)
# Migrate to pnpm for improved monorepo management ## Summary This PR migrates the Codex repository from npm to pnpm, providing faster dependency installation, better disk space usage, and improved monorepo management. ## Changes - Added `pnpm-workspace.yaml` to define workspace packages - Added `.npmrc` with optimal pnpm configuration - Updated root package.json with workspace scripts - Moved resolutions and overrides to the root package.json - Updated scripts to use pnpm instead of npm - Added documentation for the migration - Updated GitHub Actions workflow for pnpm ## Benefits - **Faster installations**: pnpm is significantly faster than npm - **Disk space savings**: pnpm's content-addressable store avoids duplication - **Strict dependency management**: prevents phantom dependencies - **Simplified monorepo management**: better workspace coordination - **Preparation for Turborepo**: as discussed, this is the first step before adding Turborepo ## Testing - Verified that `pnpm install` works correctly - Verified that `pnpm run build` completes successfully - Ensured all existing functionality is preserved ## Documentation Added a detailed migration guide in `PNPM_MIGRATION.md` explaining: - Why we're migrating to pnpm - How to use pnpm with this repository - Common commands and workspace-specific commands - Monorepo structure and configuration ## Next Steps As discussed, once this change is stable, we can consider adding Turborepo as a follow-up enhancement.
This commit is contained in:
25
package.json
25
package.json
@@ -1,13 +1,34 @@
|
||||
{
|
||||
"name": "codex-monorepo",
|
||||
"private": true,
|
||||
"description": "Tools for repo-wide maintenance.",
|
||||
"scripts": {
|
||||
"release": "cd codex-cli && npm run release",
|
||||
"release": "pnpm --filter @openai/codex run release",
|
||||
"format": "prettier --check *.json *.md .github/workflows/*.yml",
|
||||
"format:fix": "prettier --write *.json *.md .github/workflows/*.yml",
|
||||
"build": "pnpm --filter @openai/codex run build",
|
||||
"test": "pnpm --filter @openai/codex run test",
|
||||
"lint": "pnpm --filter @openai/codex run lint",
|
||||
"typecheck": "pnpm --filter @openai/codex run typecheck",
|
||||
"prepare": "husky",
|
||||
"changelog": "git-cliff --config cliff.toml --output CHANGELOG.ignore.md $LAST_RELEASE_TAG..HEAD"
|
||||
},
|
||||
"devDependencies": {
|
||||
"git-cliff": "^2.8.0",
|
||||
"husky": "^9.1.7",
|
||||
"prettier": "^3.5.3"
|
||||
}
|
||||
},
|
||||
"resolutions": {
|
||||
"braces": "^3.0.3",
|
||||
"micromatch": "^4.0.8",
|
||||
"semver": "^7.7.1"
|
||||
},
|
||||
"overrides": {
|
||||
"punycode": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22",
|
||||
"pnpm": ">=9.0.0"
|
||||
},
|
||||
"packageManager": "pnpm@10.8.1"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user