uglify files example compile and javascript gulp javascript-objects gulp-header

javascript - files - Cómo inyectar el valor de la variable en el archivo JS desde GULP



gulp minify js (2)

¿Estás usando algún tipo de módulos? Módulos ES6, AMD, CommonJS, ...?

Si es así, puede generar un módulo de configuración con Gulp donde puede inyectar cualquier variable que desee. Se vería algo como esto:

config.tmpl.js

module.exports = <%= config %>

tarea config gulp

var gulp = require(''gulp''); var template = require(''gulp-template''); var rename = require(''gulp-rename''); gulp.task(''config'', function() { return gulp.src(''path/to/config.tmpl.js'') .pipe(template({config: JSON.stringify({ timeStamp: new Date() })})) .pipe(rename(''config.js'')) .pipe(gulp.dest(''path/to/config.js'')); });

y finalmente, en tu archivo JS

var config = require(''path/to/config.js''); var object = { timeStamp: config.timeStamp }

Espero que esta sea una pregunta rápida.

Lo que trato de hacer es agregar una marca de tiempo en un objeto Javascript en un archivo JS mientras el archivo se está construyendo con GULP. Básicamente, en "file.js", tengo un objeto en el que me gustaría tener object.timeStamp que sea igual al tiempo de la compilación GULP.

Actualmente estoy agregando una marca de tiempo en la parte superior del archivo usando gulp-header, pero se me ha pedido que agregue la marca de tiempo a una propiedad en el objeto.

Mi idea era inyectar el valor de GULP, pero todos los complementos de inyección que he encontrado hasta ahora son para inyectar el contenido de un archivo en el archivo de destino.

Cualquier ayuda sería muy apreciada.


OK, entonces descubrí una solución que me lleva a donde quiero estar. El primero es usar el encabezado gulp para insertar una declaración de variable en mi archivo Javascript usando este código:

En GULP:

var d = new Date(); .pipe(header("var timeStamp = ''" + d +"'';"))

Luego, en mi archivo Javascript, configuré una propiedad en el objeto que es una función y establecí la propiedad timeStamp que estaba buscando obteniendo el valor de la variable timeStamp que se inyectó anteriormente usando el encabezado gulp, como este:

En el archivo JS, la funcionalidad del encabezado inserta esto:

var timeStamp = ''Tue Dec 08 2015 15:15:11 GMT-0800 (PST)'';

Y luego mi función, en el objeto JS es simplemente esto:

ts: function(){ object.timeStamp = timeStamp; },

Que, cuando se llama, se ejecuta y establece la marca de tiempo dentro del objeto.

Parece que debería haber una manera más fácil de hacerlo, pero por ahora, esto está funcionando.

Si tiene alguna idea sobre cómo hacerlo mejor, ¡me encantaría escucharlos!