Skip to main content

@serverless-stack/static-site-env

A simple CLI (@serverless-stack/static-site-env that allows your static site to load the environment variables from your SST app. This means that you won't have to hard code the config from your backend. Supports React.js, Next.js, and Svelte.

Installation

Run the following in the root of your static site.

# With npm
npm install @serverless-stack/static-site-env --save-dev
# Or with Yarn
yarn add @serverless-stack/static-site-env --dev

Usage

Once installed, tweak the start command in your package.json scripts.

Note that, you need to have sst start running for this to work.

React.js

package.json
"scripts": {
"start": "sst-env -- react-scripts start",
},

Start your local dev environment as usual.

npm run start

Next.js

package.json
"scripts": {
"dev": "sst-env -- next dev",
},

And run.

npm run dev

Svelte

package.json
"scripts": {
"dev": "sst-env -- vite",
},

And run.

npm run dev

How it works

Here's what's going on behind the scenes.

  1. The sst start command generates a file with the values specified by ReactStaticSite or NextjsSite construct's environment prop.
  2. The sst-env CLI will traverse up the directories to look for the root of your SST app.
  3. It'll then find the file that's generated in step 1.
  4. It'll load these as environment variables before running the start command.

Note that, sst-env only works if the React or Next.js app is located inside the SST app or inside one of its subdirectories.