控制gulp-angular-filesort js命令

时间:2015-10-12 09:54:27

标签: angularjs gulp

我使用gulp构建app和gulp-angular-filesort,将脚本注入index.html文件。

项目结构如下:

app
  |_modules
          |_module1
                   |_module1.module.js
                   |_module1.controllers.js 
          |_module2
                   |_module2.module.js
                   |_module2.controllers.js 
          |_modules.module.js

让我们说module1使用module2。所以,我想在module1之前注入module2脚本。

modules.module.js内容:

  

agnular.module(' app.modules',[' app.modules.module2',' app.modules.module1'])

modules.module1.js内容:

  

agnular.module(' app.modules.module1',[' app.modules.module2'])

modules.module2.js内容:

  

agnular.module(' app.modules.module2',[])

但无论如何脚本都以错误的顺序注入:module1首先是modul2。如何以正确的方式控制脚本顺序?

1 个答案:

答案 0 :(得分:-2)

虽然gulp-angular-filesort的基本用法很明显,但我会在这里发布以及我使用的一些偏差。

var angularFilesort = require('gulp-angular-filesort'),
    inject = require('gulp-inject');

gulp.src('./src/app/index.html')
    .pipe(inject(
        gulp.src(['./src/app/**/*.js']).pipe(angularFilesort())
    ))
    .pipe(gulp.dest('./build'));

“注意不要使用gulp.src的读取选项!此插件会分析每个文件的内容以确定排序顺序。”

这直接来自https://www.npmjs.com/package/gulp-angular-filesort

以下示例使用流。我收集不同的js流(例如来自bower组件,我自己的角度文件等)并对角度文件进行排序。

streams.applicationJS = function () {
    return gulp.src( src + "/js/**/*.js", {base: src} );
};

...

var libsAndAppJs = series( 
    streams.bowerFiles(), 
    streams.applicationJS().pipe( angularFilesort() ) 
);

var allIndex = gulp
    .src( src + "/htdocs/*/index.html", {base: src + "/htdocs"} )
    .pipe( inject( libsAndAppJs,
        {
            ignorePath: srcPrefix, addPrefix: "/directory"
        } ) );

一个稍微不同的例子:

var jsFiles = gulp.src( "**/*.js", { "cwd": src + "/js" } )
    .pipe( rename( function ( path ) {
        path.dirname = "/dir/js/" + path.dirname;
    } ) )
    .pipe( angularFilesort() );

...

return gulp.src( indexFile )
    .pipe( inject( series( vendorJsFiles, jsFiles, vendorCssFiles, cssFiles ),
        {
            ignorePath: "bower_components",
            addSuffix: "?" + new Date().getTime()
        } ) )
    .pipe( gulp.dest( dest ) )
    .on( "error", function ( err ) {
        console.log( err.message );
    } );