无法使dotenv与Angular5一起使用

时间:2018-05-04 14:10:32

标签: angular

即使在阅读了文档之后,我也不明白我应该如何使用这个软件包。

以下是我的尝试:

import {Component, OnInit} from '@angular/core';

declare const require: any; // Typescript compiler will complain without this
declare const process: any; // Typescript compiler will complain without this
require('dotenv').config();

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

  constructor() {
  }

  ngOnInit() {
    // This should display the content of my .env file right?
    console.log(process.env);
  }

}

我在项目的根目录下创建了一个包含3行的.env文件。 然后,我使用ng serve命令运行我的项目。

我希望控制台用我的3个键向我显示一个对象,但我得到一个空对象。发生了什么?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

由于dotenv在文件系统上工作,并且通常用于在节点环境中运行的任务,因此由于您的角度应用程序正在浏览器中运行,因此它无法在运行时解析必要的.env文件。

答案 1 :(得分:-1)

以下代码:

require('dotenv').config();

对angular typescript文件(.ts)无效。

您必须创建一个文件&encurnement.ts'在你的应用程序树(在你的情况下你的项目的根)像这样:

export const environment = {
   foo: true,
   bar: false
};

并在组件中要求此文件:

import { environment } from '../path/to/environment';

您现在可以通过以下方式使用您的环境:

environment.foo 
//or 
environment.bar