NgNodeEnvironment
Synopsis
Load process.env variables into Angular 2-4 Simple command line tool to write environment variables into Angular 2-4. Supports dotenv
Installation
npm install --save ng-node-environment
I recommend to put this entry on postinstall script. Examples:
or (in case you have node on /usr/local/bin/node)
Code Example
All variables that will go into Angular 2-4 must have the prefix NG_. Example:
NG_SECRET=SECRETNG_API_TOKEN=SECRET_TOKEN
Then
node ./node_modules/ng-node-environment/index.js
or (assuming you used postinstall configuration)
npm run postinstall
This will create a file named base.ts in the following way:
// src/environments/base.ts
Then merge this config into your environment(s):
; ;
In case you got troubles due to constants on app.module.ts
, you can take the exported constant variable:
NOTE: the brackets on
{sharedEnvironment}
are required to avoid aot issues.
; ;
And ignore base.ts on .gitignore
# Environment variablessrc/environments/base.ts.env
Local environments
DotEnv
A local .env
file can be provided to load environment variables from file
Multiple environments with JSON
NgNodeEnvironment supports multiple environments for local development.
By default, a file named environment.json
in the root folder of the app will be taken.
This default behaviour can be changed through the --in
option.
The following will read the file ./envs/default.json
and will write it into
./src/environments/base.ts
.
$ node ./node_modules/ng-node-environment/index.js --in="./envs/default.json"
The out file base.ts
can be overridden with the --out
option.
The following will read the file ./envs/staging.json
and will write it into
./src/environments/staging.out.ts
.
$ node ./node_modules/ng-node-environment/index.js --in="./envs/staging.json" --out="./src/environments/staging.out.ts"
Multiple environments on package.json
Testing
If there's any modification to be added to this package, please test with a sample running:
$ node index.js --in=./test_configs/test-config.json --out=./test_configs/test-config.out.ts
Just to make sure it is still working!
Motivation
Well, I don't like to have environment variables on version control because I want to be able to configure the application without deploying the app all over again.
License
MIT