作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有几个 Bower 组件,其中我需要一些组件,例如 json3
, respondjs
, es5shim
像这样添加到 IE8 条件 block 中(在构建和服务中):
<!--[if lt IE 9]>
<script src="bower_components/json3/json3.js"></script>
<![endif]-->
我应该如何着手编写任务?我找不到任何合适的例子 gulp-inject
以及wiredep
对于这个问题。请指教
最佳答案
可以用 gulp-filter和 gulp-inject's starttag option .
假设您在 index.html
中定义了以下注入(inject):
<!--[if lt IE 9]>
<![endif]-->
<!-- inject:js -->
<!-- endinject -->
您可以将它们连接到 gulpfile 中:
var gulp = require('gulp')
var bowerFiles = require('main-bower-files');
var gulpFilter = require('gulp-filter');
var gulpInject = require('gulp-inject');
gulp.task('wiredep', function() {
var ie8Files = ['**/json3.js', '**/es5shim.js'];
// the same as: var restFiles = ['*', '!**/json3.js', '!**/es5shim.js'];
var restFiles = ['*'].concat(ie8Files.map(function(e) { return '!' + e;}));
return gulp.src('index.html')
.pipe(gulpInject(gulp.src(bowerFiles(), {read: false}).pipe(gulpFilter(restFiles))))
.pipe(gulpInject(gulp.src(bowerFiles(), {read: false}).pipe(gulpFilter(ie8Files)),
{starttag: '<!--[if lt IE 9]>', endtag: '<![endif]-->'}))
.pipe(gulp.dest('dist'));
});
结果(例如):
<!--[if lt IE 9]>
<script src="bower_components/json3/json3.js"></script>
<script src="bower_components/shim/es5shim.js"></script>
<![endif]-->
<!-- inject:js -->
<script src="bower_components/jquery/jquery.js"></script>
<!-- endinject -->
关于javascript - 如何在 Gulp 中添加特定的 Bower 组件作为 IE8 条件 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27794237/
我是一名优秀的程序员,十分优秀!