I have learned that you are able to use the amplify libraries without the Amplify CLI.
To do this you simply install the amplify library as normal.
In react web:
npm install --save aws-amplify
npm install --save aws-amplify-react
After that you need to manually configure any features you're going to use with Amplify.configure();. You can find the manual configuration in the Amplify documentation for each library you plan to use.
Here is an example using Cognito:
https://aws-amplify.github.io/docs/js/authentication#manual-setup
Amplify.configure({
"aws_project_region": process.env.REACT_APP_REGION,
"aws_cognito_identity_pool_id": process.env.REACT_APP_IDENTITY_POOL_ID,
"aws_cognito_region": process.env.REACT_APP_REGION,
"aws_user_pools_id": process.env.REACT_APP_USER_POOL_ID,
"aws_user_pools_web_client_id": process.env.REACT_APP_CLIENT_ID,
"oauth": {},
Auth: {
// REQUIRED - Amazon Cognito Identity Pool ID
identityPoolId: process.env.REACT_APP_IDENTITY_POOL_ID,
// REQUIRED - Amazon Cognito Region
region: process.env.REACT_APP_REGION,
// OPTIONAL - Amazon Cognito User Pool ID
userPoolId: process.env.REACT_APP_USER_POOL_ID,
// OPTIONAL - Amazon Cognito Web Client ID (26-char alphanumeric string)
userPoolWebClientId: process.env.REACT_APP_CLIENT_ID,
}
});
You do not have to use the amplify push for deployments. You can manually deploy and configure any features you're working with.
I find this approach gives you full control over using the Amplify library without the overhead of the CLI and deployment process.