将脚本的src从bower_components更改为cdn,尽pipe吞噬

我有一些脚本标记

<script type="text/javascript" src="bower_components/angular/angular.min.js" cdn="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> <script type="text/javascript" src="bower_components/angular-messages/angular-messages.min.js" cdn="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-messages.min.js"></script> 

我想改变

 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-messages.min.js"></script> 

我试过cdnify,但是我们必须把所有的东西都编码在一起。 我想从HTML文件本身进行更多的控制,所以如果我使用不同的cdn url,它将很容易控制。

你可以使用gulp-replace来改变你的html文件,并使用正则expression式/src="(.+?)"\scdn="(.+?)"/gmi

这应该工作:

 var replace = require('gulp-replace'); gulp.task('replace-cdn', function(){ gulp.src(['index.html']) .pipe(replace(/src="(.+?)"\scdn="(.+?)"/gmi, 'src="$2"')) .pipe(gulp.dest('build ')); });