Estoy portando algo de JavaScript de Jekyll a Gulp.
En Jekyll, tengo un archivo _config.yml que incluye variables de entorno como esta:
# _config.yml app_url: https://app.mysite.com dev_mode: true dev_app_url: https://devapp.local... y en la fuente JS, puedo usar Liquid para determinar si estoy en dev_mode y modificar lo que se genera, por ejemplo:
// main.js var appUrl = '{% if site.dev_mode %}{{ site.dev_app_url }}{% else %}{{ site.app_url }}{% endif %}'; {% if site.dev_mode %} console.log(someVar); //etc {% endif %}¿Hay alguna manera de hacer cosas similares cuando uso Gulp, de modo que pueda tener diferentes variables de entorno en mi JS cuando estoy desarrollando y tener bloques de código de depuración que se omitirán cuando compile para producción?
Creo que deberías pensar en usar variables de entorno de nodejs. Se puede configurar fácilmente en su definición de secuencia de comandos package.json si usa npm. Entonces podrías terminar con algo similar a eso:
paquete.json:
{ "name": "whatever", "version": "1.0.0", "description": "", "main": "index.js", "directories": { "lib": "lib" }, "devDependencies": { "gulp": "^4.0.2", }, "scripts": { "build": "export NODE_ENV=dev||set NODE_ENV=dev&& gulp build", }, "repository": { //... } }Y dentro de su tarea de compilación de gulp (porque ahí es donde se definió el nodo env en su paquete.json), ahora puede validar el nodejs env:
if (process.env.NODE_ENV == "dev") { //stuff() }