risposta

5

È possibile utilizzare la variabile di ambiente ASPNETCORE_ENVIRONMENT (precedentemente denominata ASPNET_ENV in RC1) per ottenere l'ambiente. Questo può essere fatto nel tuo gulpfile usando process.env.ASPNETCORE_ENVIRONMENT.

Se la variabile di ambiente non esiste, è possibile tornare alla lettura del file launchSettings.json utilizzato da Visual Studio per avviare l'applicazione. Se anche questo non esiste, puoi ricorrere all'utilizzo dell'ambiente di sviluppo.

Ho scritto il seguente oggetto JavaScript per rendere più facile la gestione dell'ambiente in gulpfile.js. È possibile trovare il codice sorgente gulpfile.js completo 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; } 
}; 

Vedi this risposta per come impostare la variabile d'ambiente.

+0

Questo è null in RC1 e quindi non funziona e continua a non darci la configurazione corrente. –

+0

È necessario impostare effettivamente la variabile ASPNET_ENV in Windows/Linux/Mac OS. Vedere questo: https://stackoverflow.com/questions/32301840/how-to-set-asp-net-5-environment-variables-on-production-environment/32326666#32326666 –

+0

Si noti inoltre che questo nome di variabile di ambiente sta cambiando in RC2. –

1

È necessario impostare la variabile di ambiente NODE_ENV in ciascun ambiente e quindi nel file gulp, leggerlo utilizzando process.env.NODE_ENV.

Dai un'occhiata a https://stackoverflow.com/a/16979503/672859 per ulteriori dettagli.

+0

Quindi sembra che sia necessario impostare un ambiente nodo e un ambiente ASP.NET 5 per farlo funzionare. È possibile impostare l'ambiente del nodo in base all'ambiente di hosting ASP.NET 5? –

+1

Non conosco Visual Studio poiché non l'ho mai usato, ma dipende da come vengono eseguite le attività di Gulp. VS ha una sorta di ambiente di nodo incorporato in cui vengono eseguite le attività di Gulp? Se è così, guarderei nelle preferenze. Se le attività di Gulp vengono semplicemente eseguite dalla riga di comando, è necessario impostare le variabili di ambiente a livello di sistema operativo. –

+0

Il problema è che non voglio l'ambiente o almeno voglio essere in grado di impostare le variabili di ambiente per configurazione build (DEBUG, RELEASE ecc.) In modo che quando costruisco il nostro ambiente demo, so che andrà alla demo l'ambiente e l'URL dell'API sono impostati di conseguenza nella nostra app Angolare. Al momento non ho modo di implementare in un ambiente specifico e prima di implementare la configurazione riscrivibile leggibile in javascript in un browser web. Devo usare mvc per nessuna ragione se non quella di impostarlo contestualmente da web.config o in altro modo. –