我试图通过以下方式访问NODE_ENV变量,
在webpack.config.js
new webpack.DefinePlugin({
'process.env': {
'API_URL': process.env.API_URL,
'NODE_ENV': process.env.NODE_ENV
}
});
然后在app文件中: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);
所以这是我到处看到的程序,应该没问题,但是当我尝试在应用程序中记录env变量时,我得到以下输出:
请注意,我可以获取API_URL的值,但不能获取NODE_ENV的值,并且两者都以相同的方式设置export ENV_VAR=value
。
一些帮助将不胜感激。
答案 0 :(得分:0)
检查是否设置了NODE_ENV?
对于Linux,您可以使用:
printenv
对于MAC:
在终端
中运行Env
命令
我认为在设置env变量时可能会出现拼写错误。
答案 1 :(得分:0)
问题在于webpack替换vars的方式,它们应该用双引号或JSON.stringify()来定义。
https://webpack.js.org/plugins/define-plugin/
希望这会有所帮助......