fix(package-manager): detect `bun` before `yarn` to allow `bun install --yarn` usage (#24360)# Why Some people value readable lock files, and unfortunately, `bun.lockb` isn't readable. Bun has
fix(package-manager): detect `bun` before `yarn` to allow `bun install --yarn` usage (#24360)# Why Some people value readable lock files, and unfortunately, `bun.lockb` isn't readable. Bun has a feature for this, where it exports both a `bun.lockb` and `yarn.lock` (based on `bun.lockb`). For that reason, we should resolve `bun` before `yarn`. If people use `bun install --yarn`, we always resolve to `yarn`. # How - Move `bun` detection before `yarn`. # Test Plan - `$ bun create expo ./test -t tabs` - `$ cd ./test` - `$ bun install --yarn` - `$ bun expo install` - _Should use `bun` to install_ # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin).
show more ...
feat: detect Bun package manager (#24168)# Why Adds Bun as a recognized package manager Sister PR: https://github.com/expo/expo-cli/pull/4752 # How Added `@expo/package-manager` # Te
feat: detect Bun package manager (#24168)# Why Adds Bun as a recognized package manager Sister PR: https://github.com/expo/expo-cli/pull/4752 # How Added `@expo/package-manager` # Test Plan Added `BunPackageManager-test.ts` and added Bun tests to `nodeManagers-test.ts`. <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> # Checklist --------- Co-authored-by: Evan Bacon <[email protected]> Co-authored-by: Expo Bot <[email protected]>
refactor(package-manager)!: extend the API and provide access to spawn child (#18576)# Why Fixes ENG-7545 This proposal PR changes the API of the (node) package managers, with the goal of:
refactor(package-manager)!: extend the API and provide access to spawn child (#18576)# Why Fixes ENG-7545 This proposal PR changes the API of the (node) package managers, with the goal of: - Having the right API options to install/remove packages to `dependencies`/`devDependencies`/global deps - Having access to the actual `spawnAsync` child, to pipe logs into different systems (for example in EAS build) - Allowing us to fix a couple of annoying DX issues (see follow up PRs) > This is further outlined in the Package Manager API proposal. Before merging this one, we need to merge these other PRs to not-break `main`. Any feedback on the proposal is welcome, especially while in draft. - https://github.com/expo/expo/pull/19343 - https://github.com/expo/expo/pull/19344 # How See Package Manager API proposal. # Test Plan > These changes are backward incompatible and require a new version update. This change also allowed us to implement the following fixes (all stacked PRs): - https://github.com/expo/expo/pull/19343 - https://github.com/expo/expo/pull/19344 - https://github.com/expo/expo/pull/19342 - https://github.com/expo/expo/pull/19340 - https://github.com/expo/expo/pull/19341 - https://github.com/expo/expo/pull/19764 - https://github.com/expo/expo/pull/19835 - https://github.com/expo/expo/pull/21189 # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin).
chore: move package manager over from expo-cli (#18551)* chore: move package manager over from expo-cli * chore: remove tsbuildinfo * chore: update package.json repository references * cho
chore: move package manager over from expo-cli (#18551)* chore: move package manager over from expo-cli * chore: remove tsbuildinfo * chore: update package.json repository references * chore: update jest.config.js settings * chore: update tsconfig.json settings * chore: update README.md to match other packages * chore: add .eslintignore * chore: add babel.config.js for jest * fix: jest test and move fs mock * fix: new linting issues * fix: cwd typing issues due to URL being possible * chore: update yarn lockfile * fix: add sourcemaps when building