History log of /expo/packages/@expo/cli/src/start/doctor/web/WebSupportProjectPrerequisite.ts (Results 1 – 9 of 9)
Revision Date Author Comments
# 33643b60 04-Mar-2023 Evan Bacon <[email protected]>

feat(cli): auto setup typescript during start (#21475)

# Why

- Some users are confused about how to use the fully automated
TypeScript setup. It currently runs when you run `npx expo start` in a

feat(cli): auto setup typescript during start (#21475)

# Why

- Some users are confused about how to use the fully automated
TypeScript setup. It currently runs when you run `npx expo start` in a
project with `tsconfig.json` or any TypeScript file in the project.
- This change will run the TypeScript check continuously until
TypeScript is setup. This only applies to projects using Metro, and
currently is only run in `npx expo start`, and the run commands (when
the server is started in the current window, e.g. not headless mode).

<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

# How

- Fork the `runServer` function from Metro into the CLI so we can access
the Metro bundler instance directly.
- Use Metro's native file watching to observe new TypeScript files being
added to the project (within the observable files). This is fast and
ensures we don't accidentally block a thread that otherwise could've
been used for bundling.
- The TypeScript continuous check only runs once, if you remove
TypeScript and add it back in the same process, then nothing happens.
This is a performance optimization.
- If TypeScript is enabled while the process is running, the user will
not be prompted to install, the packages will just install in the
project. Failures will be displayed in the running process, and no more
attempts will be made.
- If TypeScript is detected on start then the existing system will be
used and the continuous check will be skipped, this means projects
already using TypeScript won't have any technical performance hit.


<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

- In a project without TypeScript:
- `npx expo`
- `touch tsconfig.json` or `mv index.js index.tsx` or `touch foo.tsx`
- TypeScript is automatically installed for the project.
- `EXPO_NO_TYPESCRIPT_SETUP` voids this behavior
- Added unit tests.

<!--
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

<!--
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 `expo prebuild` & EAS Build (eg:
updated a module plugin).

---------

Co-authored-by: Expo Bot <[email protected]>
Co-authored-by: Cedric van Putten <[email protected]>

show more ...


# 71c2e4a7 11-Jul-2022 Evan Bacon <[email protected]>

chore(cli): drop preset versions in web check (#18172)

* chore(cli): drop preset versions in web check

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <34669131+expo-bot@user

chore(cli): drop preset versions in web check (#18172)

* chore(cli): drop preset versions in web check

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <[email protected]>

Co-authored-by: Expo Bot <[email protected]>

show more ...


# dec397fd 29-Jun-2022 Kudo Chien <[email protected]>

Upgrade to react-native 0.69 (#18006)

# Why

for sdk 46
close ENG-5353

# How

- update packages
- react -> 18.0.0
- react-native -> 0.69.0
- react-dom -> 18.0.0
- react-native-w

Upgrade to react-native 0.69 (#18006)

# Why

for sdk 46
close ENG-5353

# How

- update packages
- react -> 18.0.0
- react-native -> 0.69.0
- react-dom -> 18.0.0
- react-native-web -> ~0.18.1
- react-test-renderer -> ~18.0.0
- @types/react -> ~18.0.14
- @types/react-native -> ~0.69.1
- early patch react-native for 0.69.1 fixes
- https://github.com/facebook/react-native/commit/43f831b
- https://github.com/facebook/react-native/commit/c2088e1
- https://github.com/facebook/react-native/commit/f97c6a5
- https://github.com/facebook/react-native/commit/79baca6
- https://github.com/facebook/react-native/pull/34064#issuecomment-1168810152
- migrate `expo-template-bare-minimum`, `bare-expo`, `bare-sandbox` to 0.69. reference from https://react-native-community.github.io/upgrade-helper/?from=0.68.1&to=0.69.0
- also remove the `hermesCommand` because 0.69 uses the builtin hermes-engine
- `expo-av`, `expo-modules-core`, `expo-gl-cpp`: fix android cpp building errors, because 0.69 ships both release and debug aar
- `expo-dev-client`: fix android build error from RedBox package rename
- `html-elements`: update RNWView where react-native-web removed [the `css` import](https://github.com/necolas/react-native-web/commit/b27c9820)
- `expo`: move Expo.podspec out from ios, because newer [rn-cli removed the `podspecPath` and `project` support](https://github.com/react-native-community/cli/commit/25eec7c#diff-0dddbcedebb33032fcac5991f3dcdfa44157e6ae87afcf3dabcd240a0db09832L58).
- [ ] disable dev-client because the vendored reanimated in dev menu doesn't support 0.69 yet, e.g. `folly_json -> folly_runtime`
- update reanimated and gesture-handler to latest for 0.69 support
- `jest-expo`: update to [fix the deprecated react-native-web jest preset](https://github.com/necolas/react-native-web/commit/9b0c119)
- `NCL`, `home`, patch `react-native-svg`: fix react 18 that [`children` should be explicitly added](https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-typescript-definitions)
- `@expo/cli` fix react-native-web and react-dom version checks

# Test Plan

- android bare-expo smoke test
- ios bare-expo smoke test
- ci passed
- updates e2e is broken because in the flow the react-native doesn't include 0.69.1 fixes.

show more ...


# 6d6b81f9 23-Jun-2022 Evan Bacon <[email protected]>

feat(cli): add web support to metro (#17927)

* feat: add web support for metro

* undo patch

* Update index.js

* Update MetroBundlerDevServer.ts

* Add second bundler dev server

* Add d

feat(cli): add web support to metro (#17927)

* feat: add web support for metro

* undo patch

* Update index.js

* Update MetroBundlerDevServer.ts

* Add second bundler dev server

* Add dev loading view to web

* Put feature behind EXPO_USE_METRO_WEB flag

* Move custom config into CLI

* Add support for assets across platforms

* reduce

* Added upstream web support

* Update webTemplate.ts

* Update CHANGELOG.md

* Update instantiateMetro.ts

* Update instantiateMetro.ts

* Update index.js

* Added bundle splitting support

* Update startAsync.ts

* Fixed default settings

* Add ability to copy from public folder

* wip: redirect unmatched routes to `/` on web

* fix fallback api

* Update exportApp.ts

* Update instantiateMetro.ts

* Update exportApp.ts

* clean up handler

* fixup

* clean up

* add web to export test

* Update start-test.ts

* added static serving for web

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <[email protected]>

* Update yarn.lock

lint fix

fix tests

* Update export-test.ts

* added template tests

* Create HistoryFallbackMiddleware-test.ts

* test ManifestMiddleware

* Create ServeStaticMiddleware-test.ts

* refactor multiplatform

* Update ManifestMiddleware-test.ts

* Update withMetroMultiPlatform.ts

* Update for latest metro

* Update packages/@expo/cli/src/export/resolveOptions.ts

Co-authored-by: Expo Bot <[email protected]>

show more ...


# 474a7a4b 21-Jun-2022 Evan Bacon <[email protected]>

chore(cli): migrate to debug package (#17084)

* chore(cli): migrate to debug package

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <[email protected]

chore(cli): migrate to debug package (#17084)

* chore(cli): migrate to debug package

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <[email protected]>

* Update checkPackages.ts

* Update packages/@expo/cli/src/start/platforms/android/ADBServer.ts

* Update ADBServer.ts

* Update activateWindow.ts

* Update adb.ts

* migrate new methods to debug

* Update variadic.ts

* Update yarn.lock

Co-authored-by: Expo Bot <[email protected]>

show more ...


# 7b57a441 12-May-2022 Evan Bacon <[email protected]>

feat(cli): bail out on missing required web packages (#17448)

* feat(cli): bail out on missing required web packages

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <34669131

feat(cli): bail out on missing required web packages (#17448)

* feat(cli): bail out on missing required web packages

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <[email protected]>

Co-authored-by: Expo Bot <[email protected]>

show more ...


# 53b4c0b0 10-May-2022 Evan Bacon <[email protected]>

feat(cli): add `export:web` command (#17363)

* feat(cli): add `export:web` command

* Update index-test.ts

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <34669131+expo-bo

feat(cli): add `export:web` command (#17363)

* feat(cli): add `export:web` command

* Update index-test.ts

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <[email protected]>

* Clean up and test

Update exportWebAsync.ts

* remove webpack-dev-server dep

* Generalize progress bar CI check

* use progress bar wrapper everywhere

Co-authored-by: Expo Bot <[email protected]>

show more ...


# db1d7aad 11-Apr-2022 Evan Bacon <[email protected]>

fix(cli): web support and resolution (#16820)

* fix web support and resolution

* clean up dependency logic

* Update CHANGELOG.md

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by:

fix(cli): web support and resolution (#16820)

* fix web support and resolution

* clean up dependency logic

* Update CHANGELOG.md

* Update packages/@expo/cli/CHANGELOG.md

Co-authored-by: Expo Bot <[email protected]>

* lint fix

* Update getVersionedPackages.ts

* chore(cli): move timeout code to #16820

* Update getVersionedPackages.ts

* Update getVersionedPackages-test.ts

Co-authored-by: Expo Bot <[email protected]>

show more ...


# 8d307f52 23-Mar-2022 Evan Bacon <[email protected]>

chore: refactor `expo/cli` to `@expo/cli` package (#16717)

* chore: refactor `expo/cli` to `@expo/cli` package

* Update CODEOWNERS

* fix linking

* fix lint script

* fix build file

* f

chore: refactor `expo/cli` to `@expo/cli` package (#16717)

* chore: refactor `expo/cli` to `@expo/cli` package

* Update CODEOWNERS

* fix linking

* fix lint script

* fix build file

* fix e2e tests

* lint before build

* use mock version

show more ...