无法使用 webpack 从 ng2 应用程序访问NODE_ENV



我正试图通过以下方式访问NODE_ENV变量,

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);

因此,这是我在任何地方都看到的过程,应该很好,但当我尝试在应用程序中记录env变量时,我会得到以下输出:

控制台输出

注意,我可以获得API_URL的值,但不能获得NODE_ENV的值,并且两者都以相同的方式设置,export ENV_VAR=value

如有帮助,不胜感激。

检查是否设置了NODE_ENV?

对于Linux,您可以使用:

printenv

对于MAC:

在终端中运行Env命令

我认为在设置env变量时可能存在拼写错误。

问题在于webpack替换变量的方式,它们应该用双引号或JSON.stringfy((定义。

https://webpack.js.org/plugins/define-plugin/

希望这能帮助。。。

相关内容

最新更新