如何确定我的 Gulpfile.js 中的 ASP.NET 核心环境

How to Determine the ASP.NET Core Environment in my Gulpfile.js

我正在使用 ASP.NET Core MVC 6,使用 Visual Studio 2015。在我的 gulpfile.js 脚本中,我想知道托管环境是开发、暂存还是生产,以便我可以添加或删除源地图(.map 文件)和做其他事情。这可能吗?

更新

GitHub 上的相关问题。

您需要在每个环境中设置 NODE_ENV 环境变量,然后在您的 gulpfile 中使用 process.env.NODE_ENV.

读取它

查看 了解更多详情。

您可以使用 ASPNETCORE_ENVIRONMENT(以前是 RC1 中的 ASPNET_ENV)环境变量来获取环境。这可以在您的 gulpfile 中使用 process.env.ASPNETCORE_ENVIRONMENT.

完成

如果环境变量不存在,您可以回退到读取 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; }
};

有关如何设置环境变量的信息,请参阅 答案。