| #
edeec536 |
| 06-Sep-2023 |
Evan Bacon <[email protected]> |
chore(cli): delete @expo/dev-server (#24272)
# Why
- I tried this before but the logs endpoint was blocking it.
- I forked the dev server when I wrote the original `expo/cli`, been
meaning to d
chore(cli): delete @expo/dev-server (#24272)
# Why
- I tried this before but the logs endpoint was blocking it.
- I forked the dev server when I wrote the original `expo/cli`, been
meaning to delete the original for a while. The duplicate code and
indirection is making the new server features harder to implement.
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
- Copy/paste remaining code from `@expo/dev-server` in to `@expo/cli`.
- Delete `@expo/dev-server`.
- Drop unused `/logs` and json parser middleware.
- Drop logging mocks.
- Drop experimental Webpack native support.
- Drop legacy react-native middleware support (no longer needed since
everything is versioned).
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
- Tests should keep passing.
- Need to do some actual runs since there aren't any e2e tests for
various parts of dev-server.
<!--
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 `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
---------
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
086aab5f |
| 31-Aug-2023 |
Evan Bacon <[email protected]> |
fix(cli): fix webpack dev server reload socket command. (#24208)
# Why
- fix https://github.com/expo/expo/issues/21994
<!--
Please describe the motivation for this PR, and link to relevant Gi
fix(cli): fix webpack dev server reload socket command. (#24208)
# Why
- fix https://github.com/expo/expo/issues/21994
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
<!--
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 `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
---------
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
8a424beb |
| 11-Aug-2023 |
James Ide <[email protected]> |
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)
Why
---
Prettier 3 is out. Add support for it with this linter config.
**Note for reviewer:** the first commit is the one with th
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)
Why
---
Prettier 3 is out. Add support for it with this linter config.
**Note for reviewer:** the first commit is the one with the actual
changes. The rest of this PR are changes to get the linter passing
(mostly autofix).
How
---
Update eslint-config-prettier and eslint-plugin-prettier. To address
deprecation warnings, also update typescript-eslint/parser and
typescript-eslint/eslint-plugin.
Because of an update to typescript-eslint/parser, we need to suppress
deprecation warnings (documented in a comment).
Regenerated test snapshots. Due to the upgraded dependencies, typecasts
and optional chaining are now auto-fixable by lint. This converts
warnings into autofixes.
Test Plan
---
`yarn test` in the linter config. Run `expotools check --all --fix-lint
--no-build --no-test --no-uniformity-check` to try this config on the
whole repo.
---------
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
94b54ec3 |
| 20-Jun-2023 |
Evan Bacon <[email protected]> |
chore(cli, docs): update typed routes (#22848)
# Why
I keep getting DMs about this feature being confusing so I'm doing a
pass to try and bring it to parity with the rest of our offering.
<!-
chore(cli, docs): update typed routes (#22848)
# Why
I keep getting DMs about this feature being confusing so I'm doing a
pass to try and bring it to parity with the rest of our offering.
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
- Update the experimental docs to not be a general "TypeScript" guide
but rather, be focused on the "Typed Routes" feature.
- Use the new `experiments.typedRoutes` flag and not an environment
variable. https://github.com/expo/universe/pull/12590
- Drop flag misinfo in the Expo CLI docs "This includes support for the
network inspector."
- Add a slightly more e2e test for the side-effects.
- Document how to actually turn the feature on.
---------
Co-authored-by: Aman Mittal <[email protected]>
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
6a750d06 |
| 08-Apr-2023 |
Evan Bacon <[email protected]> |
feat(cli, metro-config): environment variable support (#21983)
# Why
- It's nice to be able to use uncommitted values in your app, based on
the environment. This feels very familiar to web devel
feat(cli, metro-config): environment variable support (#21983)
# Why
- It's nice to be able to use uncommitted values in your app, based on
the environment. This feels very familiar to web developers.
- Values that are prefixed with `EXPO_PUBLIC_` will be inlined in the
bundle when bundling normally (e.g. not for Node.js).
- `.env` files are loaded into memory and applied to the process during
a run. This also means that they're available in `app.config.js`.
- During development-only, environment variables are exposed on the
`process.env` object (non-enumerable) to ensure they're available
between fast refresh updates.
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
- Create new package `@expo/env` which is used to hydrate env variables
in a unified way. I plan to open another PR in `eas-cli` which uses this
package to fill in environment variables before uploading. NOTE:
environment variables that are defined in eas.json are not available in
Expo CLI when building locally, but are available in the cloud since
they'll be on the process, this means they effectively emulate
`.env.production`.
- Update templates to gitignore local env files.
- Add basic documentation to the versioned metro guide (more to come).
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
- [ ] E2E rendering test
- [ ] E2E Node.js rendering test
- [x] Unit tests for serializer
- [x] Tests for env package
<!--
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).
show more ...
|
| #
0a6ddb20 |
| 13-Mar-2023 |
Evan Bacon <[email protected]> |
feat(cli): add basic static rendering for router projects (#21572)
# Why
- Implement an experimental static rendering system for Metro websites
using Expo Router.
- Behavior is undocumented and
feat(cli): add basic static rendering for router projects (#21572)
# Why
- Implement an experimental static rendering system for Metro websites
using Expo Router.
- Behavior is undocumented and highly experimental.
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
- Add support to `start` and `export` which pre-renders static web pages
to HTML to improve SEO support on web.
- The system implements [React Navigation's
SSR](https://reactnavigation.org/docs/server-rendering) support.
- Head elements can be used with `import { Head } from
'expo-router/head'`.
- The root HTML is not exposed to the user.
- There are no data fetching mechanisms.
- There's no ability to provide a 404 page or other server features.
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
- e2e test for exporting a router project statically.
- `EXPO_USE_STATIC=1 yarn expo` -> websites are pre-rendered before
being served.
- `EXPO_USE_STATIC=1 yarn expo export -p web` -> static routes are
rendered to static HTML files by the same name (dynamic routes are not
supported).
<!--
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]>
show more ...
|
| #
2dd43328 |
| 24-Feb-2023 |
Evan Bacon <[email protected]> |
feat(cli)!: set node and babel env for CLI commands (#21337)
# Why
- User's may want to dynamically configure Metro or their Expo Config
file to work differently when bundling for production env
feat(cli)!: set node and babel env for CLI commands (#21337)
# Why
- User's may want to dynamically configure Metro or their Expo Config
file to work differently when bundling for production environments, they
can now do this by utilizing the standard `NODE_ENV` environment
variable. We've been doing this with Webpack since it was introduced.
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
- Set `NODE_ENV` and `BABEL_ENV` environment variables to `development`
or `production` in `start`, `export`, `customize`, `install`, `run:ios`,
`run:android`, `config`, `prebuild` commands based on the input mode.
- This can be overwritten by setting `NODE_ENV` and `BABEL_ENV` manually
before running. `BABEL_ENV` will be set to `NODE_ENV` if defined.
- Most commands can safely default to assuming `development`.
- Only thing that this doesn't cover is `npx react-native bundle` and
`npx react-native start` (building from Xcode/Android Studio). We'll
need to change these commands in the future but it shouldn't be blocking
for this PR.
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
<!--
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]>
show more ...
|
| #
ac11aff6 |
| 01-Aug-2022 |
Evan Bacon <[email protected]> |
fix: drop support for experimental Webpack native symbolication (#18439)
* fix: drop support for experimental Webpack native symbolication
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-
fix: drop support for experimental Webpack native symbolication (#18439)
* fix: drop support for experimental Webpack native symbolication
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]>
* Update WebpackBundlerDevServer.ts
Co-authored-by: Expo Bot <[email protected]>
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 ...
|
| #
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 ...
|
| #
3d6e487d |
| 27-Apr-2022 |
Evan Bacon <[email protected]> |
feat(cli): add `run:android` command (#17187)
* feat(cli): add `run:android` command
* added partial e2e test
* fix platforms showing up in terminal ui
* fix launching by link
* Update p
feat(cli): add `run:android` command (#17187)
* feat(cli): add `run:android` command
* added partial e2e test
* fix platforms showing up in terminal ui
* fix launching by link
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]>
* fix platforms showing up in terminal ui
fix launching by link
fixup tests
Delete resolveArgs-test.ts.snap
* revert changes
* Update index-test.ts
Update WebpackBundlerDevServer.ts
Update WebpackBundlerDevServer.ts
Update WebpackBundlerDevServer.ts
Update PlatformManager.ts
* Update index-test.ts
* update structure
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
8a782c0f |
| 27-Apr-2022 |
Evan Bacon <[email protected]> |
feat(cli): use new dev server API (#17189)
* chore(cli): use new dev server API
* Update CHANGELOG.md
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <34669131+expo-bot@us
feat(cli): use new dev server API (#17189)
* chore(cli): use new dev server API
* Update CHANGELOG.md
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]>
* Fix downloading the beta client
* Update downloadExpoGoAsync.ts
* Update downloadExpoGoAsync-test.ts
* bump packages
* forward correct exit code
* Update CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
814b6faf |
| 15-Apr-2022 |
Evan Bacon <[email protected]> |
chore(cli): lazy load all env vars (#17082)
* chore(cli): lazy load all env vars
lazily loading all environment variables makes it easier to test different cases since you can change the value of
chore(cli): lazy load all env vars (#17082)
* chore(cli): lazy load all env vars
lazily loading all environment variables makes it easier to test different cases since you can change the value of things like `CI` between tests.
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]>
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
29975bfd |
| 28-Mar-2022 |
Evan Bacon <[email protected]> |
fix(cli): fix type errors (#16724)
* fix(cli): fix type errors
* Update CHANGELOG.md
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]
fix(cli): fix type errors (#16724)
* fix(cli): fix type errors
* Update CHANGELOG.md
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]>
* fix typecheck
* Update yarn.lock
* Update package.json
* Update MetroTerminalReporter.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 ...
|