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

时间:2015-07-05 09:31:23

标签: gulp asp.net-core production-environment visual-studio-2015 asp.net-core-mvc

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

更新

GitHub上的相关问题。

2 个答案:

答案 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