Swig.js html テンプレートを監視し、変更ごとにコンパイルするという問題に悩まされています。そのためにGulp.jsタスク ランナーを使用しています。ここに私のgulpfile.jsがあります:
var gulp = require('gulp');
var myth = require('gulp-myth');
var swig = require('gulp-swig');
var nodemon = require('gulp-nodemon');
gulp.task('styles', function () {
gulp.src('./myth/*.css')
.pipe(myth())
.pipe(gulp.dest('./client/css'));
});
gulp.task('templates', function () {
gulp.src('./views/*.html')
.pipe(swig({ load_json: true }))
.pipe(gulp.dest('./client'));
});
gulp.task('server', function () {
gulp.run('styles');
gulp.run('templates');
gulp.src('./server.js').pipe(nodemon());
gulp.watch('./myth/*.css', function () {
gulp.run('styles');
});
gulp.watch('./views/*.html', function () {
gulp.run('templates');
});
});
Myth task stylesmyth/*.css
は正常に動作します - I got updated file in client/css/
..を変更するたびに
しかし、テンプレートと呼ばれるタスクは一度だけ結果を返します..views/index.html
ファイルを変更しclient/index.html
ても同じままです。私のコンソールでは、テンプレートタスクが実行されたことがわかりますが、結果は同じです..
MacBook-Pro-Dmitri:slick-grid dmitri$ gulp server
[gulp] Using file /Users/dmitri/github/slick-grid/gulpfile.js
[gulp] Working directory changed to /Users/dmitri/github/slick-grid
[gulp] Running 'server'...
[gulp] Running 'styles'...
[gulp] Finished 'styles' in 4.02 ms
[gulp] Running 'templates'...
[gulp] Finished 'templates' in 1.29 ms
[gulp] Running 'watch'...
[gulp] Finished 'watch' in 7.23 ms
[gulp] Finished 'server' in 16 ms
>> Strata web server version 0.20.1 running on node 0.10.21
>> Listening on 0.0.0.0:9000, CTRL+C to stop
// Here I changed my views/index.html, task is ran as you see (but dest file won't be updated):
[gulp] Running 'templates'...
[gulp] Finished 'templates' in 668 μs
127.0.0.1 - - [11/Jan/2014:15:43:20 +-200] "GET / HTTP/1.1" 200 511
127.0.0.1 - - [11/Jan/2014:15:43:20 +-200] "GET /css/reset.css HTTP/1.1" 200 1419
127.0.0.1 - - [11/Jan/2014:15:43:20 +-200] "GET /css/app.css HTTP/1.1" 200 865
127.0.0.1 - - [11/Jan/2014:15:43:20 +-200] "GET /fonts/likeastore-icon-font.ttf HTTP/1.1" 200 15052
多分私はいくつかのキャッシュオプションまたは類似のものを見逃していますか?!