rsnext/examples/with-expo
Karl Horky 3ad55721d1
Remove incorrect entries for pnpm debug log (#47241)
**Reasons for making this change:**

- it is contained within `node_modules/`, which is already ignored
- the previous versions, which were not in `node_modules/`, did not have
a period at the beginning of the filename

Links to documentation supporting these rule changes:

**Changelog with proof here:**


ba4b2db1f2/pnpm/CHANGELOG.md (L3330)

History:

- my PR to remove this from `github/gitignore` here:
https://github.com/github/gitignore/pull/4250
- First introduced in `github/gitignore` in
https://github.com/github/gitignore/pull/3732 by `@sakurayang` (merged
by `@martinwoodward`)

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that
you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation or adding/fixing Examples

- The "examples guidelines" are followed from our contributing doc
https://github.com/vercel/next.js/blob/canary/contributing/examples/adding-examples.md
- Make sure the linting passes by running `pnpm build && pnpm lint`. See
https://github.com/vercel/next.js/blob/canary/contributing/repository/linting.md

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See:
https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature
request has been accepted for implementation before opening a PR. (A
discussion must be opened, see
https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added
(https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see
https://github.com/vercel/next.js/blob/canary/contributing.md



## For Maintainers

- Minimal description (aim for explaining to someone not on the team to
understand the PR)
- When linking to a Slack thread, you might want to share details of the
conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic
behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->

---------

Co-authored-by: JJ Kasper <jj@jjsweb.site>
2023-03-26 22:26:05 -07:00
..
pages Enable @typescript-eslint/no-use-before-define for examples dir (#39469) 2022-08-10 16:30:36 +00:00
public add Expo example (#12805) 2020-05-14 18:33:45 -05:00
.gitignore Remove incorrect entries for pnpm debug log (#47241) 2023-03-26 22:26:05 -07:00
App.js add Expo example (#12805) 2020-05-14 18:33:45 -05:00
babel.config.js add Expo example (#12805) 2020-05-14 18:33:45 -05:00
next.config.js Fixed link for expo (#17908) 2020-10-15 15:11:35 +02:00
package.json Update Examples to use React 18 (#42027) 2022-10-28 17:43:20 +00:00
README.md docs(examples): improve DX while copying command to create new project (#38410) 2022-07-26 21:57:48 -05:00

With Expo

supports iOS supports Android supports web

This is a starter project for creating universal React apps with Next.js and Expo.

💡 For the most updated info, see the Expo + Next.js Docs!

iOS, Android, and web running with Expo and Next.js

  • Next.js cannot be used for SSR in your native app.
  • The native bundle is built using the Metro bundler and may not have the same level of optimization as the web bundle which is compiled using the Next.js Webpack configuration.
  • Expo transpiles react-native-web packages by default to enable the use of react-native in a browser or Node.js environment.
  • All Expo packages work in the browser. If you experience issues using them in a Node environment, please report them here: Expo issues.
  • Most community react-native-* packages do not support web, please refer to reactnative.directory for a list of web compatible packages.
  • Eject the pages/_document component by running yarn next-expo customize.
  • To use fonts and images, see the Expo docs.

Deploy your own

Deploy the example using Vercel (web only):

Deploy with Vercel

Deploy the native app to the App store and Play store using Expo deployment.

How to use

Execute create-next-app with npm, Yarn, or pnpm to bootstrap the example:

npx create-next-app --example with-expo with-expo-app
yarn create next-app --example with-expo with-expo-app
pnpm create next-app --example with-expo with-expo-app

Running web

🚨 Using default Expo web with Next.js is not supported.

  • Start the Next.js project with yarn dev (yarn next dev).

Deploy the web app to the cloud with Vercel (Documentation).

Running native

  • Install the Expo CLI npm i -g expo-cli.
  • Start the Metro bundler with yarn ios or yarn android -- This runs expo start with the Expo CLI.
  • You can run the mobile app using the Expo client app, or by running yarn eject and building the project manually (this requires a macbook for iOS).

Deploy the native app to the App store and Play store using Expo deployment.

Troubleshooting

You may find that certain packages like @ui-kitten/components do not work in the browser. This is because they need to be transpiled by Next.js, you can fix this by doing the following:

  • Install the following:
yarn add -D next-compose-plugins next-transpile-modules
  • Modify the Next.js config next.config.js:
const { withExpo } = require('@expo/next-adapter')
const withPlugins = require('next-compose-plugins')
const withTM = require('next-transpile-modules')([
  // Add the name of your package here...
  '@ui-kitten/components',
])

module.exports = withPlugins([withTM, [withExpo, { projectRoot: __dirname }]], {
  // ...
})