I'm building a React Native App using Amplify. App works fine and I can run it locally using npx expo start
.
I'm now trying to use eas build
and for both iOS and Android builds (locally or in cloud), it fails with the following error:
Error: Unable to resolve module ../amplifyconfiguration.json from /home/expo/workingdir/build/frontend/app/_layout.tsx:
None of these files exist:
* amplifyconfiguration.json(.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.mjs|.native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss|.native.scss|.scss|.android.sass|.native.sass|.sass|.android.css|.native.css|.css)
* amplifyconfiguration.json/index(.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.mjs|.native.mjs|.mjs|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.json|.native.json|.json|.android.cjs|.native.cjs|.cjs|.android.scss|.native.scss|.scss|.android.sass|.native.sass|.sass|.android.css|.native.css|.css)
21 | // eslint-disable-next-line @typescript-eslint/ban-ts-comment
22 | // @ts-ignore - amplify config is git ignored, as it depends on the environment, should be generated when you pull
> 23 | import config from '../amplifyconfiguration.json';
| ^
24 | import { enGB, registerTranslation } from 'react-native-paper-dates';
25 | import { fetchAuthSession } from 'aws-amplify/auth';
Is the only solution to somehow login to amplify in the EAS build process and pull the desired environment or have I done something wrong?
The solution was to create an .easignore
file. This takes precedence over the .gitignore
file.
I copied the .gitignore and excluded both amplifyconfiguration.json
and aws-exports.js
from it.