2015-11-30 43 views
2

我有一個index.html文件下面的文字我想吞掉替換任務來代替:如何讓gulp-replace-task替換html文件中的文本?

<img src="assets/images/logo 

<img style="width:100px;height:100px;" src="assets/ima 

我想讓它使得「資產」的所有實例都替換爲「我的/東東」。

我嘗試以下,但它不工作:

gulp.task('default', function() { 
    gulp.src('./index.html') 
     .pipe(replace({ 
      patterns: [ 
       { 
        match: '/assets/g', 
        replacement: 'my/stuff' 
       } 
      ] 
     })) 
     .pipe(gulp.dest('./')) 

回答

4

比賽可以是一個字符串,但如果你想使用正則表達式刪除引號'周圍的正則表達式。

gulp.task('default', function() { 
    gulp.src('./index.html') 
     .pipe(replace({ 
      patterns: [ 
       { 
        match: /assets/g, 
        replacement: 'my/stuff' 
       } 
      ] 
     })) 
     .pipe(gulp.dest('./')) 
2

您也可以使用模塊gulp-string-replace支持管理與正則表達式,字符串甚至函數。

例子:

正則表達式:

var replace = require('gulp-string-replace'); 

gulp.task('replace_1', function() { 
    gulp.src(["./config.js"]) // Every file allown. 
    .pipe(replace(new RegExp('@[email protected]', 'g'), 'production')) 
    .pipe(gulp.dest('./build/config.js')) 
}); 

字符串:

gulp.task('replace_1', function() { 
    gulp.src(["./config.js"]) // Every file allown. 
    .pipe(replace('environment', 'production')) 
    .pipe(gulp.dest('./build/config.js')) 
}); 

功能:

gulp.task('replace_1', function() { 
    gulp.src(["./config.js"]) // Every file allown. 
    .pipe(replace('environment', function() { 
     return 'production'; 
    })) 
    .pipe(gulp.dest('./build/config.js')) 
}); 
+0

沒有的功能起什麼作用?它沒有傳遞有用的參數。 –