I use Intellij Ultimate to code my angular 4 application.
I created a new Angular 4 project, it contains environment.ts
and environment.prod.ts
and the environments are properly configured in angular-cli.json
.
how do I import it in my code? Since actually when I build it I state which environment to use. How does it work? Do I need to compile something with Intellij?
I tried googling and found many examples when people actually imported a specific environment.ts file. but that's not good, right? Since it will use the same environment.ts file even if I build for a different environment.
What do I do?
A project's src/environments/ folder contains the base configuration file, environment. ts , which provides a default environment. You can add override defaults for additional environments, such as production and staging, in target-specific configuration files.
Syntax. ng build command compiles an angular application/library into an output directory named dist at given path.
Here is a really good article on environment files with angular cli: http://tattoocoder.com/angular-cli-using-the-environment-option/
In summary, you do imported environment.ts
but the correct file will be imported depending on what environment it is. angular cli will take care of that as explained in the article.
I had lot of trouble getting this to work. Tried to follow so many tutorials, ng serve just didn't pickup anything outside of dev environment. I was finally able to make it work with following:
.angular-cli.json file
.... "environmentSource": "environments/environment.ts", "environments": { "dev": "environments/environment.dev.ts", "test": "environments/environment.test.ts", "prod": "environments/environment.prod.ts" } ....
Environment files, under ./src and following folder structure
./environments |--environment.ts |--environment.test.ts |--environment.prod.ts |--environment.dev.ts
environment.ts file:
export const environment = { production: false, apiBase: 'http://dev-server:4200/app/', env: 'dev' };
environment.test.ts file
export const environment = { production: false, apiBase: 'http://test-server:2080/app/', env: 'test' };
environment.prod.ts file
export const environment = { production: true, apiBase: 'http://prod-server:2080/app/', env: 'prod' };
**Do not create another environment.ts file under src.
app.module.ts or any other components where you want to use the environment properties. Remember to import environment from ../environments folder. I made a mistake of following a tutorial and creating environment.ts under src folder which did not work for me.
import { environment } from '../environments/environment'; export class AppModule { constructor() { console.log('Base Api :' + environment.apiBase + ' production? ' + environment.production + ' env: ' + environment.env); } }
Hope this helps.
By the way, i did this with Angular 5.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With