所有js文件的gulp-replace和gulp-hash?

时间:2016-07-08 16:42:27

标签: javascript gulp

我在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 ...

0 个答案:

没有答案