GULP

2015-12-08 22 views
5

'dan JS dosyasına değişken değer nasıl enjekte edilir? Bu kısa bir sorudur.GULP

Yapmaya çalıştığım şey, dosya GULP ile oluşturulduğunda bir JS dosyasındaki Javascript nesnesine zaman damgası eklemek. Temel olarak, "file.js" içinde, GULP yapısının zamanına eşit olan object.timeStamp'a sahip olmak istediğim bir nesnem var.

Şu anda dosyanın üst kısmına gulp-header kullanarak bir zaman damgası ekliyorum, ancak zaman damgasını nesnede bir özelliğe eklemem istenmiştir.

Düşüncem, GULP'den gelen değeri enjekte etmekti, ancak şu ana kadar bulduğum tüm enjeksiyon eklentileri, bir dosyanın içeriğini hedef dosyaya enjekte etmek içindir.

Herhangi bir yardım büyük memnuniyetle karşılanacaktır.

cevap

8

Herhangi bir modül kullanıyor musunuz? ES6 modülleri, AMD, CommonJS, ...?

öyleyse, sen istediğiniz herhangi değişkeni enjekte edebilir Gulp ile bir yapılandırma modülünü üretebilir edin. Böyle bir şey olacaktır:

config.tmpl.js

module.exports = <%= config %> 

yapılandırma yudum düşen, JS dosyasına

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')); 
}); 

ve son olarak

var config = require('path/to/config.js'); 

var object = { 
    timeStamp: config.timeStamp 
} 
1

O.K., bu yüzden nerede olmak istediğimi gösteren bir geçici çözüm buldum. Yudumda

: Önce bu bu kodu kullanarak benim JavaScript dosyası içine bir değişken bildiriminde eklemek için yudum-header kullanıyor Sonra

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

, benim JavaScript dosyasında, ben bir özellik kurmak Bir işlev olan nesne, ve gash-header kullanarak yukarıda belirtilen zamanStamp değişkeninden değer elde ederek aradığım timeStamp özelliğini ayarlar:

JS Dosyası'nda, başlık işlevi aşağıdakileri ekler:

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

Sonra JS Nesne benim işlevi basitçe şudur:, ishal denir ve nesnenin içeri damgası koyduğunda

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

Hangi.

Bunu yapmanın daha kolay bir yolu olmalı gibi görünüyor, ama şimdilik bu işe yarıyor.

Daha iyisini yapmak için herhangi bir fikriniz varsa, bunları duymak isterim!