¿Cómo puedo configurar una variable de entorno como tarea engullida?

No quiero escribir los argumentos adicionales NODE_ENV='production' gulp cada vez que ejecuto gulp para establecer una variable de entorno.

Preferiría establecer la variable de entorno desde dentro a través de una tarea .

¿Cuál sería una buena manera de lograr esto?

 gulp.task('set-dev-node-env', function() { return process.env.NODE_ENV = 'development'; }); gulp.task('set-prod-node-env', function() { return process.env.NODE_ENV = 'production'; }); 

Utilízalo como:

 gulp.task('build_for_prod', ['set-prod-node-env'], function() { // maybe here manipulate config object config.paths.src.scripts = config.paths.deploy.scripts; runSequence( 'build', 's3' ); }); 

Prueba gulp-env

Ejemplo rápido sobre cómo establecer algunas variables de entorno antes de ejecutar la tarea nodemon:

 // gulpfile.js var gulp = require('gulp'); var nodemon = require('nodemon'); var env = require('gulp-env'); gulp.task('nodemon', function() { // nodemon server (just an example task) }); gulp.task('set-env', function () { env({ vars: { MONGO_URI: "mongodb://localhost:27017/testdb-for-british-eyes-only", PORT: 9001 } }) }); gulp.task('default', ['set-env', 'nodemon']) 

También puede definirlo como un script en su package.json

 { "name": "myapp", "scripts": { "gulp": "NODE_ENV='development' gulp", "gulp-build": "NODE_ENV='production' gulp" }, ... } 

Y ejecutarlo con npm run gulp-build . Esto tiene algunos beneficios.

  • Puedes definir argumentos fácilmente en lugar de escribirlos cada vez
  • No se requiere la instalación global de trucos (lo mismo para otras herramientas, como el paquete web)
  • Puede definir múltiples variantes con diferentes variables de entorno y (o) argumentos sin cambiar el gulpfile (como puede ver arriba – gulp y gulp-build para desarrollo y producción respectivamente)

También puede establecer uno de forma predeterminada y leer las variables de un archivo json :

 gulp.task('set-env', function () { var envId = gutil.env.env; if (!envId) { envId = "dev"; } genv({ file: "env." + envId + ".json" }); }); 

Esto sería siempre dev env por defecto, y podría llamarlo configurando otro env, como este:

gulp --env prod

Más de gulp-env

    Intereting Posts