我正在使用Visual Studio 2015使用ASP.NET Core MVC 6.在我的gulpfile.js脚本中,我想知道托管环境是开发,暂存还是生产,以便我可以添加或删除源映射(.map文件)并做其他事情。这可能吗?
更新
GitHub上的相关问题。
答案 0 :(得分:5)
您可以使用ASPNETCORE_ENVIRONMENT
(RC1中以前为ASPNET_ENV
)环境变量来获取环境。这可以使用process.env.ASPNETCORE_ENVIRONMENT
在您的gulpfile中完成。
如果环境变量不存在,您可以回退到读取Visual Studio用于启动应用程序的launchSettings.json
文件。如果这也不存在,那么回退到使用开发环境。
我编写了以下JavaScript对象,以便更轻松地处理gulpfile.js中的环境。您可以找到完整的gulpfile.js源代码here。
// Read the launchSettings.json file into the launch variable.
var launch = require('./Properties/launchSettings.json');
// Holds information about the hosting environment.
var environment = {
// The names of the different environments.
development: "Development",
staging: "Staging",
production: "Production",
// Gets the current hosting environment the application is running under.
current: function () {
return process.env.ASPNETCORE_ENVIRONMENT ||
(launch && launch.profiles['IIS Express'].environmentVariables.ASPNETCORE_ENVIRONMENT) ||
this.development;
},
// Are we running under the development environment.
isDevelopment: function () { return this.current() === this.development; },
// Are we running under the staging environment.
isStaging: function () { return this.current() === this.staging; },
// Are we running under the production environment.
isProduction: function () { return this.current() === this.production; }
};
有关如何设置环境变量,请参阅this答案。
答案 1 :(得分:1)
您需要在每个环境中设置NODE_ENV环境变量,然后在gulpfile中,使用process.env.NODE_ENV读取它。
有关其他详细信息,请查看https://stackoverflow.com/a/16979503/672859。