Skip to content

Instantly share code, notes, and snippets.

@ridoansaleh
Last active February 9, 2020 14:46

Revisions

  1. ridoansaleh revised this gist Feb 9, 2020. 1 changed file with 40 additions and 0 deletions.
    40 changes: 40 additions & 0 deletions cra-environment-variables.md
    Original file line number Diff line number Diff line change
    @@ -12,6 +12,14 @@ Customizing Environment Variables for Arbitrary Build Environments. This is poss
    "REACT_APP_ENV": "development",
    "REACT_APP_WEBSITE": "website b"
    },
    "dev:website-c": {
    "REACT_APP_ENV": "development",
    "REACT_APP_WEBSITE": "website c"
    },
    "dev:website-d": {
    "REACT_APP_ENV": "development",
    "REACT_APP_WEBSITE": "website d"
    },
    "sit:website-a": {
    "REACT_APP_ENV": "sit",
    "REACT_APP_WEBSITE": "website a"
    @@ -20,6 +28,14 @@ Customizing Environment Variables for Arbitrary Build Environments. This is poss
    "REACT_APP_ENV": "sit",
    "REACT_APP_WEBSITE": "website b"
    },
    "sit:website-c": {
    "REACT_APP_ENV": "sit",
    "REACT_APP_WEBSITE": "website c"
    },
    "sit:website-d": {
    "REACT_APP_ENV": "sit",
    "REACT_APP_WEBSITE": "website d"
    },
    "uat:website-a": {
    "REACT_APP_ENV": "uat",
    "REACT_APP_WEBSITE": "website a"
    @@ -28,13 +44,29 @@ Customizing Environment Variables for Arbitrary Build Environments. This is poss
    "REACT_APP_ENV": "uat",
    "REACT_APP_WEBSITE": "website b"
    },
    "uat:website-c": {
    "REACT_APP_ENV": "uat",
    "REACT_APP_WEBSITE": "website c"
    },
    "uat:website-d": {
    "REACT_APP_ENV": "uat",
    "REACT_APP_WEBSITE": "website d"
    },
    "prod:website-a": {
    "REACT_APP_ENV": "production",
    "REACT_APP_WEBSITE": "website a"
    },
    "prod:website-b": {
    "REACT_APP_ENV": "production",
    "REACT_APP_WEBSITE": "website b"
    },
    "prod:website-c": {
    "REACT_APP_ENV": "production",
    "REACT_APP_WEBSITE": "website c"
    },
    "prod:website-d": {
    "REACT_APP_ENV": "production",
    "REACT_APP_WEBSITE": "website d"
    }
    }
    ```
    @@ -46,13 +78,21 @@ Customizing Environment Variables for Arbitrary Build Environments. This is poss
    "start": "react-scripts start",
    "start:dev-web-a": "env-cmd -e dev:website-a npm start",
    "start:dev-web-b": "env-cmd -e dev:website-b npm start",
    "start:dev-web-c": "env-cmd -e dev:website-c npm start",
    "start:dev-web-d": "env-cmd -e dev:website-d npm start",
    "build": "react-scripts build",
    "build:sit-web-a": "env-cmd -e sit:website-a npm run build",
    "build:sit-web-b": "env-cmd -e sit:website-b npm run build",
    "build:sit-web-c": "env-cmd -e sit:website-c npm run build",
    "build:sit-web-d": "env-cmd -e sit:website-d npm run build",
    "build:uat-web-a": "env-cmd -e uat:website-a npm run build",
    "build:uat-web-b": "env-cmd -e uat:website-b npm run build",
    "build:uat-web-c": "env-cmd -e uat:website-c npm run build",
    "build:uat-web-d": "env-cmd -e uat:website-d npm run build",
    "build:prod-web-a": "env-cmd -e prod:website-a npm run build",
    "build:prod-web-b": "env-cmd -e prod:website-b npm run build",
    "build:prod-web-c": "env-cmd -e prod:website-c npm run build",
    "build:prod-web-d": "env-cmd -e prod:website-d npm run build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
    },
  2. ridoansaleh created this gist Feb 9, 2020.
    59 changes: 59 additions & 0 deletions cra-environment-variables.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,59 @@
    Customizing Environment Variables for Arbitrary Build Environments. This is possible by using env-cmd library.

    ## 1. .env.cmdrc

    ```json
    {
    "dev:website-a": {
    "REACT_APP_ENV": "development",
    "REACT_APP_WEBSITE": "website a"
    },
    "dev:website-b": {
    "REACT_APP_ENV": "development",
    "REACT_APP_WEBSITE": "website b"
    },
    "sit:website-a": {
    "REACT_APP_ENV": "sit",
    "REACT_APP_WEBSITE": "website a"
    },
    "sit:website-b": {
    "REACT_APP_ENV": "sit",
    "REACT_APP_WEBSITE": "website b"
    },
    "uat:website-a": {
    "REACT_APP_ENV": "uat",
    "REACT_APP_WEBSITE": "website a"
    },
    "uat:website-b": {
    "REACT_APP_ENV": "uat",
    "REACT_APP_WEBSITE": "website b"
    },
    "prod:website-a": {
    "REACT_APP_ENV": "production",
    "REACT_APP_WEBSITE": "website a"
    },
    "prod:website-b": {
    "REACT_APP_ENV": "production",
    "REACT_APP_WEBSITE": "website b"
    }
    }
    ```

    ## 2. scripts of package.json

    ```json
    "scripts": {
    "start": "react-scripts start",
    "start:dev-web-a": "env-cmd -e dev:website-a npm start",
    "start:dev-web-b": "env-cmd -e dev:website-b npm start",
    "build": "react-scripts build",
    "build:sit-web-a": "env-cmd -e sit:website-a npm run build",
    "build:sit-web-b": "env-cmd -e sit:website-b npm run build",
    "build:uat-web-a": "env-cmd -e uat:website-a npm run build",
    "build:uat-web-b": "env-cmd -e uat:website-b npm run build",
    "build:prod-web-a": "env-cmd -e prod:website-a npm run build",
    "build:prod-web-b": "env-cmd -e prod:website-b npm run build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
    },
    ```