Tengo una aplicación angular-cli (versión angular 4.0.0). Quiero poder acceder a mis variables de entorno en el archivo environment.ts creado desde el cli.
Ejemplo:
export SOME_VARIABLE=exampleValueCuando construyo mi aplicación angular, quiero que se complete "exampleValue" en el campo SOME_VARIABLE.
// environment.ts export const environment = { production: false, SOME_VARIABLE: process.env.SOME_VARIABLE };Lamentablemente, process.env no está disponible en este archivo. ¿Cómo puedo acceder a él?
Una forma de resolver esto es crear un script de nodo, que reemplaza un marcador de posición.
Esto se puede hacer con replace-in-file de npm.
Una solución puede verse así:
npm install replace-in-file --save-dev
Crear un marcador de lugar
export const environment = { production: true, version: '{BUILD_VERSION}' }Cree una secuencia de comandos de nodo para reemplazar el marcador de posición (replace.build.js en la carpeta raíz)
var replace = require('replace-in-file'); var buildVersion = process.env.BUILD_NUMBER; const options = { files: 'environments/environment.ts', from: /{BUILD_VERSION}/g, to: buildVersion, allowEmptyPaths: false, }; try { let changedFiles = replace.sync(options); console.log('Build version set: ' + buildVersion); } catch (error) { console.error('Error occurred:', error); }Ejecute este script de nodo en su proceso de compilación fe in gulp
gulp.task('updateVersion', function (done) { exec('node ./replace.build.js', function (err, stdout, stderr) { console.log(stdout); console.log(stderr); done(); }); }); Ahora puede usar environment.version en su aplicación.