另一种方法:
假设您已经安装了:
- gulp
- run-sequence
- main-bower-files
- gulp-inject
如果没有安装,您可以使用npm进行安装,例如:
npm install gulp run-sequence main-bower-files gulp-inject --save-dev
将依赖项保存到HTML文件中
一旦您拥有它,我们就开始配置gulp任务
gulp.task("bower:copyfiles", function(cb){
return gulp.src(mainBowerFiles())
.pipe(gulp.dest('./src/lib'))
cb();
});
gulp.task('bower:insertfiles', function(cb){
return gulp.src('./src/index.html')
.pipe(inject(gulp.src(['./src/lib/*.js', './src/lib/*.css'], {read: false}), {
starttag: '<!-- bower:{{ext}} -->',
endtag: '<!-- endbower -->',
relative:true
}
))
.pipe(gulp.dest('./src'));
})
gulp.task('bower:buildlib', function(cb) {
runSequence('bower:copyfiles', 'bower:insertfiles',cb);
})
现在我们已经完成了一半的进程,我们需要将标签插入到index.html中,让gulp知道在哪里包含内容。
<html>
<head>
<meta charset="utf-8">
<title></title>
<!
<!
<!
</head>
<body>
<!
<!
<!
</body>
</html>
最后一步是在命令行中运行我们的任务。
gulp bower:buildlib
注意事项:
众所周知,使用Bower安装的某些库具有不同的文件配置。例如:当您安装Bootstrap时,CSS文件未包含在内,因为在bower.json中(位于bower_components或其他位置的库文件夹中)是这样设置的。您可以通过在项目根目录中添加bower.json并像以下示例一样将其覆盖来解决此问题(以Bootstrap为例):
"overrides":{
"bootstrap":{
"main":[
"dist/js/bootstrap.js",
"dist/css/bootstrap.min.css",
"less/bootstrap.less"
]
}
}
通过这种方式,您可以设置哪些文件将被包含在内,哪些不会。