美文网首页
gulp-usemin

gulp-usemin

作者: 风之化身呀 | 来源:发表于2017-12-16 01:44 被阅读118次

1、作用及基本用法

一个html文件中一般会依赖多个css文件,该插件就是通过一种特殊的注释语法将所个css文件替换成一个。

var usemin = require('gulp-usemin');
gulp.task('usemin', function() {
  return gulp.src('./*.html')
    .pipe(usemin({options}))
    .pipe(gulp.dest('build/'));
});
//html特殊注释
<!-- build:css style.css -->
<link rel="stylesheet" href="css/clear.css"/>
<link rel="stylesheet" href="css/main.css"/>
<!-- endbuild -->
 
<!-- build:htmlimport components-packed.html -->
<link rel="import" href="components-a.html">
<link rel="import" href="components-b.html">
<!-- endbuild -->
 
<!-- build:js js/lib.js -->
<script src="../lib/angular-min.js"></script>
<script src="../lib/angular-animate-min.js"></script>
<!-- endbuild -->
 
<!-- build:js1 js/app.js -->
<script src="js/app.js"></script>
<script src="js/controllers/thing-controller.js"></script>
<script src="js/models/thing-model.js"></script>
<script src="js/views/thing-view.js"></script>
<!-- endbuild -->
 
<!-- build:remove -->
<script src="js/localhostDependencies.js"></script>
<!-- endbuild -->
 
<!-- build:inlinejs -->
<script src="../lib/angular-min.js"></script>
<script src="../lib/angular-animate-min.js"></script>
<!-- endbuild -->
 
<!-- build:inlinecss -->
<link rel="stylesheet" href="css/clear.css"/>
<link rel="stylesheet" href="css/main.css"/>
<!-- endbuild -->

2、注释语法

三个参数可以配置

... HTML Markup, list of script / link tags.

  • pipelineId: 对应options中的某个配置,比如css,js等,填哪个Id,其包含的块就会执行option中配置的Id对应的任务;或者填remove,表示该section会被删除,即不会编译到html中
  • alternate search path: (optional) css,js文件一般是相对于当前html的,但是这个配置项可以改变这个相对地址,即可以不相对于html
  • path: 执行完pipelineId对应的任务后生产的文件路径

3、配置项

  • assetsDir
    设置处理后的静态资源根路径,可用于配置CDN
  • path
    设置第2节中的alternate search path,可被某个具体的块重写
  • pipelineId String
    若存在就用其改变对应的文件,如果没有包含字符串'concat',就会作为第一个管道中的成员,若有concat,则concat永远是管道中的第一个
  • outputRelativePath String
    经过处理输出的js和css相对html文件的位置
  • enableHtmlComment Boolean
    是否保留html里的评论
  • jsAttribute Object
    在输出的script上添加属性,主要是加defer做异步加载
{
        async : true,
        defer:true,
        lorem : 'ipsum',
}
  • skipMissingResources Boolean
    当一个资源不存在时,是否跳过,默认false,当一个资源不存在时会报错

4、其他

  • 该插件自带concat功能,无需再引入其他concat插件
  • 如果你需要使用两次相同的管道输入,你需要给将任务用函数包起来
gulp.task('usemin', function() {
  return gulp.src('./*.html')
    .pipe(usemin({
      css: [ rev ],
      html: [ function () {return htmlmin({ collapseWhitespace: true });} ],
      js: [ uglify, rev ],
      inlinejs: [ uglify ],
      inlinecss: [ cleanCss, 'concat' ]
    }))
    .pipe(gulp.dest('build/'));
});

gulp.task('usemin', ['sass'], function() { //
del('build/')
gulp.src([
_opt.src + 'view/ink-share.html'
], {
base: _opt.src
})
.pipe(gulpRevAll.revision({
prefix: 'http://1234.cloudfront.net/'
}))
.pipe(usemin({
css: [minifyCss(), gulpRevAll.revision({
hashLength: 4,
prefix: 'http://1234.cloudfront.net/'
})],
html: [function() {
return htmlmin({
collapseWhitespace: true
});
}],
js: [uglify(), gulpRevAll.revision({
hashLength: 4,
prefix: 'http://1234.cloudfront.net/'

        })],
        // inlinejs: [uglify],
        // inlinecss: [minifyCss, 'concat']
    }))
    .pipe(gulp.dest('build/'));

});

相关文章

  • gulp-usemin

    1、作用及基本用法 一个html文件中一般会依赖多个css文件,该插件就是通过一种特殊的注释语法将所个css文件替...

网友评论

      本文标题:gulp-usemin

      本文链接:https://www.haomeiwen.com/subject/iiejwxtx.html