| #
2d4e7de9 |
| 18-Sep-2023 |
Evan Bacon <[email protected]> |
router v3 public fixes (#24472)
# Why
- Some small fixes for Expo Router v3 based on the alpha release
---------
Co-authored-by: Expo Bot <[email protected]>
|
| #
46f023fa |
| 15-Sep-2023 |
Evan Bacon <[email protected]> |
[RFC] API Routes in Expo Router (#24429)
# Why
Servers are an important part of developing many different types of
apps, but they're much harder to configure than they need to be.
API Routes
[RFC] API Routes in Expo Router (#24429)
# Why
Servers are an important part of developing many different types of
apps, but they're much harder to configure than they need to be.
API Routes will enable users to express some abstract JavaScript code
that runs in a server by simply creating a file in the app directory,
and adding the `+api.js` suffix. For example, to securely interact with
OpenAI, simply:
```ts
// app/generate+api.ts
import { ExpoRequest, ExpoResponse } from 'expo-router/server';
export async function POST(req: ExpoRequest): Promise<ExpoResponse> {
const { prompt } = await req.json();
const json = await fetch('https://api.openai.com/v1/engines/text-davinci-003/completions', {
headers: {
'Content-Type': 'application/json',
// `OPENAI_API_KEY` is pulled from the .env file when running in Expo CLI.
Authorization: `Bearer ${process.env.OPENAI_API_KEY ?? ''}`,
},
method: 'POST',
body: JSON.stringify({
prompt,
max_tokens: 100,
}),
}).then(res => res.json());
// Return as JSON
return ExpoResponse.json(json);
}
```
This will be served at `http://localhost:8081/generate` with `npx expo`
and can be used by making a request:
```sh
$ curl -X POST -H "Content-Type: application/json" -d \'{"prompt":"Hello, my name is"}\' http://localhost:8081/generate
```
Expo Router polyfills the URL and `window.location` object on native to
allow for universally requesting with a relative URL:
```js
// Expo prepends the host and port to the URL automatically in development.
const json = await fetch('/generate').then(res => res.json());
```
# How
- API Routes are bundled with Metro, leveraging all the same
functionality as the rest of the app and website.
- The project babel config is used to transpile the API routes.
Indication is passed to the Babel caller via the `isServer` boolean.
This can be used to change the preset based on the environment.
- Each API route is bundled into a standalone file in the `dist/_expo`
directory. This is akin to ncc, the tool we use to make Create Expo App
download in ~1 second.
- Create a new package `@expo/server` which includes the requisite
middleware and runtime polyfills for the Expo server environment.
- Add a new routes manifest which will be used by `@expo/server` to
serve up the three types of routes: HTML routes, API routes, and not
found routes (404s).
- Add a new export `expo-router/server` (potentially will be moved to
`expo/server`) which contains the `ExpoRequest` and `ExpoResponse`
objects. These are all based on the WinterCG specification, and include
some additional properties for interop with the Expo Router filesystem
convention. These are inspired by Remix, SvelteKit, and Next.js for
simplicity.
- Add a new export mode `web.output: "server"` which can be used to
export a dynamic server. Note: I may drop this for now and make server
the default since there's no expo-specific hosting code that must be
exported.
- This PR adds the ability to host the app with an express server,
different production adapters to follow.
# Test Plan
In addition to all the E2E Metro tests, I've added a new E2E runner
which starts a server and pings different requests to ensure expected
behavior. These run in the CLI as opposed to the `@expo/server` package.
- resolve ENG-10057 ENG-8243 ENG-8082 ENG-8079 ENG-8242 ENG-8081
ENG-8080 ENG-9625
---------
Co-authored-by: Expo Bot <[email protected]>
Co-authored-by: Cedric van Putten <[email protected]>
show more ...
|
| #
7c98c357 |
| 14-Sep-2023 |
Evan Bacon <[email protected]> |
feat(cli, router, metro, asset): add basePath support (#23911)
# Why
- Add the ability to export websites for hosting from a custom path.
This is required for GitHub pages.
- Resolve ENG-9193
feat(cli, router, metro, asset): add basePath support (#23911)
# Why
- Add the ability to export websites for hosting from a custom path.
This is required for GitHub pages.
- Resolve ENG-9193
- Resolve https://github.com/expo/expo/issues/20562
- Resolve https://github.com/expo/router/issues/165
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
- Add `expo.experiments.basePath` which can be used during `npx expo
export` to modify how assets are referenced.
- Set the `publicPath` in Metro to output as expected.
- Add custom asset writing for web to support stripping the unused
prefix.
- It's unclear if this should also apply to native, and if we should
have platform-specific variations.
- Update Expo Router to support automatically adjusting paths to support
basePath in production builds.
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
- [ ] New `expo export` test.
<!--
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]>
Co-authored-by: Aman Mittal <[email protected]>
show more ...
|
| #
573b0ea7 |
| 01-Sep-2023 |
Evan Bacon <[email protected]> |
feat(metro, cli, router): production static web source maps support (#24213)
# Why
- Add support for exporting (or skipping) optimally formatted source
maps on web with static rendering enabled.
feat(metro, cli, router): production static web source maps support (#24213)
# Why
- Add support for exporting (or skipping) optimally formatted source
maps on web with static rendering enabled.
- Improved version of https://github.com/expo/expo/pull/22334
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
- Pass a new setting to the custom serializer when exporting for usage
outside of the dev server. This setting will ensure a source map is
created with paths relative to the server root.
- The resources will be adjusted after exporting to reflect the hashed
js filename location.
- When no sourcemap exporting is enabled, the references will be
stripped to prevent getting a chrome warning.
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
- I added an e2e bundling test for both exporting with and without
sourcemaps.
<!--
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 ...
|
| #
0769e63b |
| 24-Aug-2023 |
Evan Bacon <[email protected]> |
Prevent writing unused bundles with static Metro web. (#24092)
# Why
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
Prevent writing unused bundles with static Metro web. (#24092)
# Why
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
- Prevent writing a `metadata.json` and `bundles/web-xxx.js` with static
Metro web.
- We have two systems for exporting with Metro in here, just haven't had
time to migrate native over to use the new one. Also haven't had time to
add sourcemap support or asset manifests to the new one either.
- Split out of https://github.com/expo/expo/pull/23911
# 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 ...
|
| #
42637653 |
| 28-Jun-2023 |
Evan Bacon <[email protected]> |
feat(cli): Add metro favicon middleware (#23072)
# Why
- Expo Webpack had support and this was a nice feature.
<!--
Please describe the motivation for this PR, and link to relevant GitHub
is
feat(cli): Add metro favicon middleware (#23072)
# Why
- Expo Webpack had support and this was a nice feature.
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
- Add middleware in development for `/favicon.ico` which generates a
favicon based on the config in `app.json` `web.favicon`
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
- Added tests. They're not fully exhaustive and don't cover the `single`
export case.
<!--
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 ...
|
| #
da5824c9 |
| 12-Jun-2023 |
Kudo Chien <[email protected]> |
[cli] fix typecheck from react-native 0.72 upgrade (#22766)
# Why
follow up #22588 which disabled the cli typecheck
# How
using types from metro and fix typing issues
# Test Plan
cli
[cli] fix typecheck from react-native 0.72 upgrade (#22766)
# Why
follow up #22588 which disabled the cli typecheck
# How
using types from metro and fix typing issues
# Test Plan
cli ci passed
show more ...
|
| #
1a3d836e |
| 22-May-2023 |
Evan Bacon <[email protected]> |
feat(cli): Add `--no-minify` flag to `npx expo export` to prevent minifying output JavaScript. (#22544)
# Why
Nice feature to have for debugging.
# How
- Add the `--no-minify` flag to `npx
feat(cli): Add `--no-minify` flag to `npx expo export` to prevent minifying output JavaScript. (#22544)
# Why
Nice feature to have for debugging.
# How
- Add the `--no-minify` flag to `npx expo export`.
- Forward the flag to all Metro invocations.
- Also noticed that in some places, we were minifying Node.js code which
doesn't matter, so now we always skip minification when creating static
functions.
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
- `npx expo export --no-minify` -> JS and CSS is not minified.
---------
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
8be9689f |
| 08-May-2023 |
evanbacon <[email protected]> |
Revert "feat(metro-config): add web sourcemap support (#22334)"
This reverts commit d8e77756248549b2932cdc8911688f7ef09fb177.
|
| #
d8e77756 |
| 08-May-2023 |
Evan Bacon <[email protected]> |
feat(metro-config): add web sourcemap support (#22334)
# Why
- ensure exporting sourcemaps on web strips out the sourcemap tags when
sourcemaps aren't generated.
- ensure sourcemaps are relativ
feat(metro-config): add web sourcemap support (#22334)
# Why
- ensure exporting sourcemaps on web strips out the sourcemap tags when
sourcemaps aren't generated.
- ensure sourcemaps are relative on web in production when produced (may
revert).
- ensure web sources don't use `.bundle` in map URLs.
- ensure web source maps are placed in the new generated folder
`dist/_expo`.
<!--
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 ...
|
| #
9580591f |
| 30-Apr-2023 |
Evan Bacon <[email protected]> |
feat(metro-config, cli): CSS serializer (#22325)
# Why
In order to support static CSS in development mode, we need to update
the metro serializer to support returning the JS and CSS assets. We n
feat(metro-config, cli): CSS serializer (#22325)
# Why
In order to support static CSS in development mode, we need to update
the metro serializer to support returning the JS and CSS assets. We now
inline the CSS in the HTML before sending to the client, this allows for
testing how the website works with JS disabled. We use the same style
tag id to continue to support HMR for styles during subsequent updates.
This change also refactors how exports work to serialize JS and CSS at
the same time (i.e. after the native transformations).
<!--
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 ...
|
| #
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 ...
|
| #
9b2597ba |
| 06-Apr-2023 |
Evan Bacon <[email protected]> |
feat(metro-config, cli): CSS support for Metro web (#21941)
# Why
This PR moves the CSS support from Expo Router over to
`expo/metro-config` behind a beta flag. This is because we need deeper
i
feat(metro-config, cli): CSS support for Metro web (#21941)
# Why
This PR moves the CSS support from Expo Router over to
`expo/metro-config` behind a beta flag. This is because we need deeper
integration with Expo CLI and Metro in order to emit static CSS files in
production bundles. CSS is required for media queries -> rehydration.
- Related: https://github.com/expo/router/pull/397
https://github.com/expo/router/pull/223
<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->
# How
Instead of a babel transformer, we now use a custom "transformer" which
gives us the ability to add extra metadata to a Metro module on export.
This means we can pass the raw and processed CSS for writing to disk.
The development version of CSS still uses script injection via
JavaScript, meaning static rendering cannot currently be tested in
development.
CSS Modules are implemented (web-only currently) using lightningcss. The
export is generated to work with React Native for web. Consider the
following block:
```js
export default { ...StyleSheet.create({ container: { $$css: true, _: 'hashed-container-id' } }) }
```
CSS Variables are not currently hashed, enabling the user to define
variables in a global CSS file and access them in CSS Modules (subject
to change in order to support native). CSS variables are accessible from
the default export as strings: `styles['--color'] === '--color'`.
## Docs
I've chosen to document in the versioned metro doc instead of the
unversioned guide, this seems like a reasonable spot given the highly
experimental nature of this feature.
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
- Unit tests for conversion.
- [x] Test in/out for transformer.
- [ ] Test static export.
- TBD for E2E
<!--
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 ...
|
| #
5404abc1 |
| 14-Feb-2023 |
Evan Bacon <[email protected]> |
Close config file watchers to ensure process can exit. (#21199)
# Why
This was a bug and now it's fixed.
# How
<!--
How did you build this feature or fix this bug and why?
-->
# Test P
Close config file watchers to ensure process can exit. (#21199)
# Why
This was a bug and now it's fixed.
# How
<!--
How did you build this feature or fix this bug and why?
-->
# Test Plan
Start and stop the dev server in `expo start`, this should now
completely close and not hang open.
---------
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
2bd64340 |
| 02-Nov-2022 |
Evan Bacon <[email protected]> |
fix(cli): resolve `metadata.json` file path absolutely for `npx expo export` (#19802)
* fix(cli): resolve `metadata.json` file path absolutely for `npx expo export`.
* Update packages/@expo/cli/C
fix(cli): resolve `metadata.json` file path absolutely for `npx expo export` (#19802)
* fix(cli): resolve `metadata.json` file path absolutely for `npx expo export`.
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]>
Co-authored-by: Expo Bot <[email protected]>
show more ...
|
| #
0ee18cff |
| 28-Oct-2022 |
Brent Vatne <[email protected]> |
[cli] Add extra param required for latest cli-plugin-metro
|
| #
e330c216 |
| 27-Oct-2022 |
Evan Bacon <[email protected]> |
fix(cli): skip printing source maps when exporting (#19710)
* fix(cli): skip printing source maps when exporting without writing source maps
* fix format for single-line items
* Update package
fix(cli): skip printing source maps when exporting (#19710)
* fix(cli): skip printing source maps when exporting without writing source maps
* fix format for single-line items
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]>
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 ...
|
| #
dc51e206 |
| 27-Apr-2022 |
Evan Bacon <[email protected]> |
feat(cli): add `export` command (#17034)
* feat(cli): add export command
* Update CHANGELOG.md
* update tests
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <34669131+
feat(cli): add `export` command (#17034)
* feat(cli): add export command
* Update CHANGELOG.md
* update tests
* Update packages/@expo/cli/CHANGELOG.md
Co-authored-by: Expo Bot <[email protected]>
* reduce interface
* refactor
refactor
refactor
* refactor
* remove all merging code
* drop aliases
* Added asset saving tests
* refactor export code up
* Update env.ts
* Drop unused
* added e2e tests
* Dropped --quiet flag
* PR Feedback
* fix tests
* fix export tests
* Update export-test.ts
Co-authored-by: Expo Bot <[email protected]>
show more ...
|