You want to display the application version from your package.json
in your frontend React application, that is using react-scripts.
React scripts automatically picks up .env
files and populates environment variables that start with REACT_APP_
. Thus, for runtime use a .env
file with:
REACT_APP_VERSION=$npm_package_version
This populates the version from the npm_package_version
environment variable on runtime which is set by the NodeJs environment. However, this does not always work if you are building in different environments.
Therefore, for build time use a tool like genversion
in package.json:
// ...
"scripts": {
"start": "react-scripts start",
"build": "genversion src/version.gen.ts && react-scripts build",
// ...
}
// ...
And include the version in your application for example via:
export const environment = {
VERSION: process.env.REACT_APP_VERSION ?? version,
};
Ignore the generated version file in your .gitignore
.
With this approach the version gets populated if you start your react app through the .env
and you ensure the version on a build via the genversion
command.