2929| Tool | Version | Purpose |
3030| ------| ---------| ---------|
3131| ** Node.js** | ≥ 20.x | Runtime |
32- | ** npm ** | ≥ 10.x | Package manager |
32+ | ** pnpm ** | ≥ 10.x | Package manager |
3333| ** Expo CLI** | Latest | Development tools |
3434| ** Xcode** | ≥ 15 (macOS) | iOS simulator |
3535| ** Android Studio** | Latest | Android emulator |
@@ -42,7 +42,7 @@ git clone https://github.com/objectstack-ai/mobile.git
4242cd mobile
4343
4444# 2. Install dependencies
45- npm install --legacy-peer-deps
45+ pnpm install
4646
4747# 3. Copy environment variables
4848cp .env.example .env.local
@@ -51,21 +51,21 @@ cp .env.example .env.local
5151# Edit .env.local: EXPO_PUBLIC_API_URL=http://localhost:3000
5252
5353# 5. Start development server
54- npx expo start
54+ pnpm start
5555```
5656
5757### Available Commands
5858
5959| Command | Description |
6060| ---------| -------------|
61- | ` npm start` | Start Expo development server |
62- | ` npm run android` | Start on Android |
63- | ` npm run ios` | Start on iOS |
64- | ` npm run web` | Start on web |
65- | ` npm run lint` | Run TypeScript check + ESLint |
66- | ` npm test` | Run Jest tests |
67- | ` npm run format` | Format code with Prettier |
68- | ` npm run format:check` | Check formatting without changes |
61+ | ` pnpm start` | Start Expo development server |
62+ | ` pnpm run android` | Start on Android |
63+ | ` pnpm run ios` | Start on iOS |
64+ | ` pnpm run web` | Start on web |
65+ | ` pnpm run lint` | Run TypeScript check + ESLint |
66+ | ` pnpm test` | Run Jest tests |
67+ | ` pnpm run format` | Format code with Prettier |
68+ | ` pnpm run format:check` | Check formatting without changes |
6969
7070---
7171
@@ -206,7 +206,7 @@ mobile/
2062062. Make changes with small, focused commits
207207
2082083. Run checks before pushing
209- npm run lint && npm test
209+ pnpm run lint && pnpm test
210210
2112114. Push and create PR against develop
212212 git push origin feature/my-feature
@@ -509,8 +509,8 @@ chore(deps): update expo SDK to 54.0.33
509509
510510- [ ] TypeScript compiles without errors (`npx tsc --noEmit`)
511511- [ ] ESLint passes (`npx eslint . --ext .ts,.tsx`)
512- - [ ] Tests pass (`npm test`)
513- - [ ] Code is formatted (`npm run format:check`)
512+ - [ ] Tests pass (`pnpm test`)
513+ - [ ] Code is formatted (`pnpm run format:check`)
514514- [ ] New code has appropriate types (no unnecessary `any`)
515515- [ ] New components have `accessibilityLabel` props
516516- [ ] Documentation updated if API changed
@@ -578,8 +578,8 @@ How to verify the changes.
578578
579579| Issue | Solution |
580580|-------|----------|
581- | **Install fails** | Use `npm install --legacy-peer-deps ` |
582- | **Metro cache issues** | `npx expo start --clear` |
581+ | **Install fails** | Use `pnpm install --no-frozen-lockfile ` |
582+ | **Metro cache issues** | `pnpm start --clear` |
583583| **TypeScript errors** | `npx tsc --noEmit` to check |
584584| **NativeWind not updating** | Restart Metro bundler |
585585| **Expo Go crash** | Use development build instead |
@@ -589,7 +589,7 @@ How to verify the changes.
589589
590590```bash
591591# Clear all caches
592- npx expo start --clear
592+ pnpm start --clear
593593
594594# Reset Metro cache
595595npx react-native start --reset-cache
@@ -601,7 +601,7 @@ npx expo-doctor
601601npx tsc --noEmit
602602
603603# Fix formatting
604- npm run format
604+ pnpm run format
605605```
606606
607607---
0 commit comments