Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(cli, dev-server): add SYSTEMROOT for open when opening browsers on Windows #23287

Merged
merged 6 commits into from
Jul 4, 2023

Conversation

byCedric
Copy link
Member

@byCedric byCedric commented Jul 4, 2023

Why

Fixes #23252

How

  • open has a bug on Windows, where it uses process.env.SYSTEMROOT instead of process.env.SystemRoot
  • This causes the executed command to run with undefined\\...
  • There has been no fix yet, and due to open being fully ESM now, we probably can't upgrade too

See various issues #300, #292, #270, or #205

This basically sets the missing SYSTEMROOT when trying to open a browser on Windows. It's fixed in both @expo/cli as well as @expo/dev-server (to open the Chrome DevTools).

Test Plan

This has to be tested on Windows.

  • $ yarn create expo ./test-browser -t tabs@beta
  • $ cd ./test-browser
  • $ yarn start
  • Try pressing the following keys:
    • j -> to open the Chrome DevTools, after connecting a device. Should work as expected.
    • w -> to open the browser with Metro web. Should work as expected.

Checklist

@byCedric byCedric requested a review from EvanBacon as a code owner July 4, 2023 11:19
@expo-bot expo-bot added the bot: suggestions ExpoBot has some suggestions label Jul 4, 2023
@byCedric byCedric requested a review from brentvatne July 4, 2023 11:22
Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
@expo-bot expo-bot added bot: passed checks ExpoBot has nothing to complain about and removed bot: suggestions ExpoBot has some suggestions labels Jul 4, 2023
@byCedric
Copy link
Member Author

byCedric commented Jul 4, 2023

Preferably, we should switch to a proper working library 🙈

Copy link
Member

@brentvatne brentvatne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🥵

@brentvatne
Copy link
Member

cc @Kudo - just so you're aware, since you had some overlap with this when launching chrome inspector

@byCedric byCedric merged commit 065a44f into main Jul 4, 2023
10 checks passed
@byCedric byCedric deleted the @bycedric/cli/fix-open-windows-browser-issue branch July 4, 2023 19:55
byCedric added a commit that referenced this pull request Jul 4, 2023
…rs on Windows (#23287)

# Why

Fixes #23252

# How

- `open` has a bug on Windows, where it [uses
`process.env.SYSTEMROOT`](https://github.com/sindresorhus/open/blob/main/index.js#L173)
instead of
[`process.env.SystemRoot`](https://en.wikipedia.org/wiki/Environment_variable#:~:text=The%20%25SystemRoot%25%20variable%20is%20a,including%20the%20drive%20and%20path.)
- This causes the executed command to run with `undefined\\...`
- There has been no fix yet, and due to `open` being fully ESM now, we
probably can't upgrade too

> See various issues
[#300](sindresorhus/open#300),
[#292](sindresorhus/open#292),
[#270](sindresorhus/open#270), or
[#205](sindresorhus/open#205)

This basically sets the missing `SYSTEMROOT` when trying to open a
browser on Windows. It's fixed in both `@expo/cli` as well as
`@expo/dev-server` (to open the Chrome DevTools).

# Test Plan

This has to be tested on Windows.

- `$ yarn create expo ./test-browser -t tabs@beta`
- `$ cd ./test-browser`
- `$ yarn start`
- Try pressing the following keys:
- `j` -> to open the Chrome DevTools, after connecting a device. Should
work as expected.
  - `w` -> to open the browser with Metro web. Should work as expected.

# 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).

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
@brentvatne brentvatne added the published Changes from the PR have been published to npm label Jul 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: passed checks ExpoBot has nothing to complain about published Changes from the PR have been published to npm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[CLI/SDK 49 Beta] Windows PowerShell issue when pressing w to open browser
4 participants