我在gulp项目中遇到了一些问题。
gulpfile.js:
'use strict';
var gulp = require('gulp'),
jade = require('gulp-jade'),
hash = require('gulp-hash'),
replace = require('gulp-replace');
// Пути
var path = {
app : { // Исходники
html : 'dist/*.html',
jade : 'app/*.jade',
js : 'app/js/**/*.js'
},
dist : { // Релиз
html : 'dist/',
js : 'dist/js/'
},
watch : { // Наблюдение
jade : 'app/**/*.jade',
html : 'dist/**/*.html',
js : 'app/js/**/*.js'
}
};
// Работа с JADE
gulp.task('jade', function() {
gulp.src(path.app.jade)
.pipe(jade({
pretty: '\t',
}))
.pipe(gulp.dest(path.dist.html));
});
// Работа с HTML
gulp.task('html', ['js'], function(){
var assets = require('./tmp/assets.json');
gulp.src(path.app.html)
.pipe(replace('main.js', assets['main.js']))
.pipe(gulp.dest(path.dist.html));
});
// Работа с JS
gulp.task('js', function(){
return gulp.src(path.app.js)
.pipe(hash())
.pipe(gulp.dest(path.dist.js))
.pipe(hash.manifest('assets.json'))
.pipe(gulp.dest('tmp'));
});
// Наблюдение
gulp.task('watch', function () {
gulp.watch(path.watch.jade, ['jade']);
gulp.watch(path.watch.html, ['html']);
gulp.watch(path.watch.js, ['js']);
});
// Задачи по-умолчанию
gulp.task('default', [
'jade',
'html',
'js',
]);
目录:
- app
|__ bower
| |__ jquery ...
|__ js
| |__ main.js
| |__ plugin.js
|__ index.jade
- dist
|__ js
| |__ main-0aff1519.js
| |__ vendor-0aff1519.js
|__ index.html
index.jade
...
body
script(src='js/main.js')
script(src='js/plugins.min.js')
script(src='js/parallax.min.js')
...
我使用gulp-replace来gulp-hash。 输出我希望:
<body>
...
<script src="js/main-0aff1519.js"></script>
<script src="js/parallax.min-c52476c9.js"></script>
<script src="js/plugins-da39a3ee.js"></script>
...
所以,问题是:
如何修复index.jade中所有脚本的gulpfile.js .pipe(replace ...
?