2017-09-01 56 views
0

我試圖訪問下列方式NODE_ENV變量,無法從NG2應用程序訪問NODE_ENV用的WebPack

webpack.config.js

new webpack.DefinePlugin({ 
    'process.env': { 
     'API_URL': process.env.API_URL, 
     'NODE_ENV': process.env.NODE_ENV 
    } 
}); 

然後:app.config.ts

export interface EnvVars { 
    API_URL: string; 
    NODE_ENV: string; 
} 

export const env: EnvVars = { 
    API_URL: process.env.API_URL || '', 
    NODE_ENV: process.env.NODE_ENV 
} 

最後auth.ts

import {platformBrowserDynamic} from "@angular/platform-browser-dynamic"; 
import { enableProdMode } from "@angular/core"; 
import { env, EnvVars } from "./../shared/app.config"; 
import {AuthModule} from "./auth.module"; 

if (env.NODE_ENV == 'production') { 
    enableProdMode(); 
} 

console.log(env); 

platformBrowserDynamic().bootstrapModule(AuthModule); 

所以這是我看到的到處都是的程序,應該是很好,但是當y嘗試在應用程序中記錄的環境變量,我得到下面的輸出:

console output

注意,我可以得到API_URL的值,而不是NODE_ENV的值,並且兩者的設置方法相同,export ENV_VAR=value

一些幫助,將不勝感激。

+0

您正在使用哪個操作系統? –

回答

0

檢查是否設置了NODE_ENV?

對於Linux,你可以使用:

printenv 

對於MAC:

運行Env命令在終端

我認爲在設置環境變量有拼寫錯誤的可能性。

+0

沒有解決問題 –

+0

你可以使用webpack命令傳遞env變量,例如:webpack-dev-server --env = dev –

相關問題