2017-07-08 11 views
0

Javaスクリプト拡張子 '.js'を '.js.gz'に変換しようとしています。このため私はgulp-html-replaceモジュールを選択しました。しかし、私は希望の結果を得ることができません。以下の例では、2つのスクリプトを使用していますが、それ以上は持っています。Gulp:index.htmlのjavaスクリプト拡張を変換する

index.htmlを(前):

<!-- build:js --> 
    <script src="routing_components/app-routing/app-routing.component.js"></script> 
    <script src="routing_components/home-routing/home-routing.component.js"></script> 
<!-- endbuild --> 

のindex.html(一気のindex.htmlをした後、次のようにする必要があります):

<script src="routing_components/app-routing/app-routing.component.js.gz"></script> 
<script src="routing_components/home-routing/home-routing.component.js.gz"></script> 

しかし、その代わりに、私は一口タスクを実行した後、これを取得しています

<script src="index.js.gz"></script> 

ガルプタスク:

gulp.task('index_gzip', function() { 
    gulp.src('app/index.html') 
     .pipe(htmlreplace({ 
      js: { 
       src: null, 
       tpl: '<script src="%f.js.gz"></script>' 
      } 
     })) 
     .pipe(gulp.dest(function (file) { 
      return file.base; 
     })) 
}); 

誰かがこの種のタスクのためのより良いモジュールを知っているなら、お勧めします。そして、私のグルプの仕事を修正するのを助けてください

答えて

0

このプラグインを試してくださいgulp-replace。しかし、なぜ正規表現のグループ化が正しく機能しているのかわかりません。

var replace = require('gulp-replace'); 
gulp.task('index_gzip', function() { 
    gulp.src('app/index.html') 
     .pipe(replace(/(<script.*?src=\")(.*?).js\"/g, '$1$2.js.gz"')) 
     .pipe(gulp.dest(function (file) { 
      return file.base; 
     })) 
}); 
+0

app/index.htmlのすべてのスクリプトが変更されますか。特定のスクリプトを変更したい場合はどうでしょうか。 – MTA

関連する問題