gulp useref为bower组件工作,但不适用于我的app文件(css和js)

时间:2016-04-29 14:07:08

标签: gulp bower gulp-useref

运行构建任务时,useref没有达到我的预期:

在我的索引中我有:

<!-- build:css /assets/styles/lib.css -->
<!-- bower:css -->
    <link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.css" />
<!-- endbower -->
<!-- endbuild -->

<!-- build:css /assets/styles/main.css -->
<!-- inject:css -->
    <link rel="stylesheet" href="assets/styles/main.css">
<!-- endinject -->
<!-- endbuild -->

<!-- build:js /lib.js -->
<!-- bower:js -->
    <script src="/bower_components/jquery/dist/jquery.js"></script>
    <script src="/bower_components/angular/angular.js"></script>
<!-- endbower -->
<!-- endbuild -->

<!-- build:js ./project.js -->
<!-- inject:js -->
    <script src="app.js"></script>
<!-- endinject -->
<!-- endbuild -->

所以在我的gruntfile中我有一个任务:

gulp.task('build-optimise', function () {
    log('Optimising project');
    return gulp.src(config.app + 'index.html')
        .pipe($.useref({searchPath: ['./bower_components', config.app]}))
        .pipe($.print())
        .pipe($.if('*.js', $.uglify({
            mangle: false
        })))
        .pipe($.if('*.css', $.minifyCss()))
        .pipe(gulp.dest(config.dist));
}); // config.app = ./local which contains my local build

运行我的任务时,会生成一个lib.js文件和一个assets / styles / lib.css文件,但没有project.js,也没有assets / styles / main.css

我该如何解决这个问题?我的js文件是用打字稿编写的,并且已经被linted和成功创建,css来自sass,我很确定它们没有错误,所以它一定是别的......

1 个答案:

答案 0 :(得分:0)

我在项目中做了类似的事情

我的gulp任务适合你的情况就像这样

gulp.task('build-optimise', function () {
    log('Optimising project');
    return gulp.src(config.app + 'index.html')
        .pipe($.useref())
        .pipe($.if('*.js', $.uglify()))
        .pipe($.if('*.css', $.minifyCss()))
        .pipe(gulp.dest(config.dis));
 });

希望这会有所帮助