2015-10-12 37 views
0

我正在使用gulp構建app和gulp-angular-filesort以將腳本注入到index.html文件中。控制gulp-angular-filesort js命令

項目的結構是這樣的:

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

假設模塊1採用模塊2。所以,我想在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',[])

但無論如何腳本在錯誤的順序注射的:模塊1是第一然後modul2 。我怎樣才能正確地控制腳本順序?

+1

如何注入文件的一飲而盡任務是什麼樣子?如果您正在使用讀取選項設置爲false可能會導致問題?你在上面的代碼中也有一個錯字:「agnular」應該是「angular」 –

回答

-1

雖然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流(例如,來自涼亭組件,我自己的角度文件等)並對角度文件進行排序。

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); 
    });