# 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.
75 lines
724 B
Plaintext
75 lines
724 B
Plaintext
# deps
|
|
# Node.js dependencies
|
|
node_modules
|
|
.pnpm-store
|
|
.pnpm-debug.log
|
|
|
|
# Keep pnpm-lock.yaml
|
|
!pnpm-lock.yaml
|
|
|
|
# build
|
|
dist/
|
|
build/
|
|
out/
|
|
storybook-static/
|
|
|
|
# ignore README for publishing
|
|
codex-cli/README.md
|
|
|
|
# ignore Nix derivation results
|
|
result
|
|
|
|
# editor
|
|
.vscode/
|
|
.idea/
|
|
.history/
|
|
*.swp
|
|
*~
|
|
|
|
# caches
|
|
.cache/
|
|
.turbo/
|
|
.parcel-cache/
|
|
.eslintcache
|
|
.nyc_output/
|
|
.jest/
|
|
*.tsbuildinfo
|
|
|
|
# logs
|
|
*.log
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
|
|
# env
|
|
.env*
|
|
!.env.example
|
|
|
|
# package
|
|
*.tgz
|
|
|
|
# ci
|
|
.vercel/
|
|
.netlify/
|
|
|
|
# patches
|
|
apply_patch/
|
|
|
|
# coverage
|
|
coverage/
|
|
|
|
# os
|
|
.DS_Store
|
|
Thumbs.db
|
|
Icon?
|
|
.Spotlight-V100/
|
|
|
|
# Unwanted package managers
|
|
.yarn/
|
|
yarn.lock
|
|
pnpm-lock.yaml
|
|
|
|
# release
|
|
package.json-e
|
|
session.ts-e
|
|
CHANGELOG.ignore.md |