Skip to content

bebeal/vite-amplify

Repository files navigation

vite-amplify

Vite Template with Vite SSR + Express APIs + AWS Amplify Hosting.

Also available with no server side rendering:
(vite-amplify-no-ssr.com)

vite-amplify.com

~4 mins from fork-to-finish for a successful deployment

vite-amplify-landing

Features

Other Libraries

Development

Using yarn

yarn install      // install dependencies
425781036-dacb70a0-1228-4cb1-b4a6-8ee62b64aa52
yarn dev          // run the development server
425781309-25c7c40e-b8e0-4d4c-9fd7-f565d9bc9eb8
yarn build        // build both client side and server side build
425345804-2eb9c561-bd5a-411c-9acf-d31074abb794 (1)

Additional Commands

yarn clean        // clean everything thats generated in the build/dev process
yarn build:client // build the client side to dist/client
yarn build:server // build the server side to dist/server
yarn lint         // run eslint
yarn format       // run prettier

CDK

yarn build:cdk    // build the cdk
yarn deploy:cdk   // deploy the cdk
425349353-ad9d52cc-9046-4cd2-b072-1b47083eb48d

Amplify Hosting

To deploy to Amplify Hosting

  1. Create repository from template
  2. Deploy to AWS

Note: set env variable YARN_ENABLE_IMMUTABLE_INSTALLS=0 in the Amplify console

Image

Build

The build outputs to dist folder. The build is split into two parts, the client side and the server side.

dist
β”œβ”€β”€ client
β”‚   β”œβ”€β”€ assets
β”‚   β”‚   β”œβ”€β”€ index-CjfxHUYp.css       28.14 kB β”‚ gzip:     6.28 kB
β”‚   β”‚   └── index-CyAzpqo0.js       326.88 kB β”‚ gzip:   109.05 kB
β”‚   β”œβ”€β”€ favicon.ico                  14.73 kB β”‚ gzip:     4.46 kB
β”‚   β”œβ”€β”€ index.html                     .56 kB β”‚ gzip:      .35 kB
β”‚   └── robots.txt                     .06 kB β”‚ gzip:      .08 kB
└── server
    β”œβ”€β”€ api
    β”‚   β”œβ”€β”€ api.d.ts                   .21 kB β”‚ gzip:      .16 kB
    β”‚   └── api.js                    1.01 kB β”‚ gzip:      .47 kB
    β”œβ”€β”€ entry-server.js              56.77 kB β”‚ gzip:    20.72 kB
    β”œβ”€β”€ favicon.ico                  14.73 kB β”‚ gzip:     4.46 kB
    β”œβ”€β”€ robots.txt                     .06 kB β”‚ gzip:      .08 kB
    β”œβ”€β”€ server.d.ts                    .25 kB β”‚ gzip:      .18 kB
    β”œβ”€β”€ server.js                     4.52 kB β”‚ gzip:     1.84 kB
    β”œβ”€β”€ tsconfig.node.tsbuildinfo    46.99 kB β”‚ gzip:    14.90 kB
    β”œβ”€β”€ vite.config.d.ts               .08 kB β”‚ gzip:      .10 kB
    └── vite.config.js                1.39 kB β”‚ gzip:      .52 kB

5 directories, 15 files

Amplify Build

  • amplify.yml is the build spec for Amplify Hosting (AWS Docs)

  • deploy-minifest.json is the deployment spec and is what deploys the express api server (AWS Docs)

  • postbuild.sh will take the build from dist and copy it over to the amplify build folder (.amplify-hosting) which results in (AWS Docs):

.amplify-hosting
β”œβ”€β”€ compute
β”‚   └── default
β”‚       β”œβ”€β”€ client
β”‚       β”‚   β”œβ”€β”€ assets
β”‚       β”‚   β”‚   β”œβ”€β”€ index-CjfxHUYp.css          28.14 kB β”‚ gzip:     6.28 kB
β”‚       β”‚   β”‚   └── index-CyAzpqo0.js          326.88 kB β”‚ gzip:   109.05 kB
β”‚       β”‚   β”œβ”€β”€ favicon.ico                     14.73 kB β”‚ gzip:     4.46 kB
β”‚       β”‚   β”œβ”€β”€ index.html                        .56 kB β”‚ gzip:      .35 kB
β”‚       β”‚   └── robots.txt                        .06 kB β”‚ gzip:      .08 kB
β”‚       β”œβ”€β”€ package.json                         2.22 kB β”‚ gzip:      .90 kB
β”‚       └── server
β”‚           β”œβ”€β”€ api
β”‚           β”‚   β”œβ”€β”€ api.d.ts                      .21 kB β”‚ gzip:      .16 kB
β”‚           β”‚   └── api.js                       1.01 kB β”‚ gzip:      .47 kB
β”‚           β”œβ”€β”€ entry-server.js                 56.77 kB β”‚ gzip:    20.72 kB
β”‚           β”œβ”€β”€ favicon.ico                     14.73 kB β”‚ gzip:     4.46 kB
β”‚           β”œβ”€β”€ robots.txt                        .06 kB β”‚ gzip:      .08 kB
β”‚           β”œβ”€β”€ server.d.ts                       .25 kB β”‚ gzip:      .18 kB
β”‚           β”œβ”€β”€ server.js                        4.52 kB β”‚ gzip:     1.84 kB
β”‚           β”œβ”€β”€ tsconfig.node.tsbuildinfo       46.99 kB β”‚ gzip:    14.90 kB
β”‚           β”œβ”€β”€ vite.config.d.ts                  .08 kB β”‚ gzip:      .10 kB
β”‚           └── vite.config.js                   1.39 kB β”‚ gzip:      .52 kB
β”œβ”€β”€ deploy-manifest.json                          .83 kB β”‚ gzip:      .33 kB
└── static
    β”œβ”€β”€ favicon.ico                             14.73 kB β”‚ gzip:     4.46 kB
    └── robots.txt                                .06 kB β”‚ gzip:      .08 kB

8 directories, 19 files

Lighthouse

100_91_96_100

Β―\(ツ)/Β― πŸ§‚ lighthouse_summary_100_91_96_100_july282024.pdf