我有三个吞咽任务:
第一个任务 - 将所有的翡翠文件编译成 html,使用 bower.json 中的wiredep 插件注入我所有的 css 和 js
/* Compile jade templates to html files in app directory */
gulp.task('jade', function() {
gulp.src(config.path.dev.jade + '/index.jade')
.pipe(jade({
pretty: '\t'
}))
.pipe(wiredep({
ignorePath: '../'
}))
.pipe(gulp.dest('./src'))
.pipe(notify(config.message.jadeCompiled))
});
任务后的结果:
<!-- bower:js-->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/nodernizr-dev/modernizr-latest.js"></script>
<!-- endbower-->
第二个任务 - 从 bower.json 获取最新版本的 jQuery 并使用 gulp-google-cdn 插件更改 URL
/* Change JQuery from bower directory to Google CDN URL */
gulp.task('cdn', function () {
return gulp.src('./src/index.html')
.pipe(googlecdn(require('./bower.json')))
.pipe(gulp.dest('./dist'))
.pipe(notify(config.message.cdnComplete))
});
任务后的结果:
<!-- bower:js-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="bower_components/nodernizr-dev/modernizr-latest.js"></script>
<!-- endbower-->
第三个任务 - 再次使用wiredep插件来改变我的生产路径
/* Normalize paths to production */
gulp.task('wiredep', function () {
return gulp.src('./dist/index.html')
.pipe(wiredep({
ignorePath: '../src/bower_components/',
exclude: 'jquery',
fileTypes: {
html: {
replace: {
js: '<script src="js/vendor/{{filePath}}"></script>',
css: '<link rel="stylesheet" href="css/vendor/{{filePath}}" />'
}
}
}
}))
.pipe(gulp.dest('./dist'))
});
我有这个结果
<!-- bower:js-->
<script src="js/vendor/nodernizr-dev/modernizr-latest.js"></script>
<!-- endbower-->
但我只想像这样忽略一个字符串(我的 Google CDN URL 所在的位置)
<!-- bower:js-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="js/vendor/nodernizr-dev/modernizr-latest.js"></script>
<!-- endbower-->