Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 通过gulp将脚本的src从bower_组件更改为cdn_Html_Node.js_Optimization_Gulp_Cdn - Fatal编程技术网

Html 通过gulp将脚本的src从bower_组件更改为cdn

Html 通过gulp将脚本的src从bower_组件更改为cdn,html,node.js,optimization,gulp,cdn,Html,Node.js,Optimization,Gulp,Cdn,我有一些脚本标签 <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-me

我有一些脚本标签

<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,但我们必须把所有东西都编码在gulp中。 我想从HTML文件本身获得更多的控制权,因此如果我使用不同的cdn URL,就可以很容易地进行控制。

您可以利用更改HTML文件,并使用正则表达式
/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 '));
});
即使对于没有cdn属性的脚本,它也保留了其原始名称。谢谢:)