2016-08-27 4 views
0

モジュールの連結および縮小にはどのような戦略が適していますか?gulpビルドタスク - 連結モ​​ジュールおよび連結モジュール

私はこの撮りたい:

<script type="text/javascript" src="bower_components/angular-route/angular-route.js"></script> 
<script type="text/javascript" src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script> 
<script type="text/javascript" src="bower_components/angular-ui-router/release/angular-ui-router.min.js"></script> 
<script type="text/javascript" src="bower_components/satellizer/satellizer.min.js"></script> 
etc... 

をそして、それはこの作る:私はmain.jsに連結し、縮小され、私の他のjsファイルは、のためにこのビルドプロセスを実行しています

<script src="js/all_bower_components.js"></script> 

が、自分のJSファイルのフォルダ構造が比較的予測可能なので簡単です。しかし、私の亭コンポーネントではありません。

bower_components/ 
    angular/ 
     angular.js 
     index.js 
     other random js files which aren't the ones I need 
    jquery/ 
     dist/ 
      jquery.js 
     src/ 
      bunch of other crap 

私はそのようにしようとしています:ループのすべてのコンポーネントおよびサブフォルダを通って、単に.jsファイルを検索...しかし、再び、これは私がように必要のないものを含むことができindex.js角度:

gulp.task('modules', function() { 
    return gulp.src(['bower_components/**/*.js']) 
     .pipe(concat('modules.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('public/js')); 
}); 

どのような考えですか?

答えて

1

あなたはmain-bower-filesを試しましたか?このglupプラグインは、取得するファイル(mainとしてリストされている)のコンポーネントのbower.jsonファイルを調べることによって、すべての基本バワー.jsと.cssをキャプチャします。 bower.jsonの設定と一致しない要件については、プラグインの呼び出し内のデフォルトを上書きすることができます。私はこれがdependency-heavyアプリのvendor.jsとvendor.cssをバンドルするのに非常に便利だとわかりました。

幸運!

+0

これはかなりクールです。何らかの理由で、私は連結されたJSファイルを 'uglify'できません:' GulpUglifyError:JavaScriptを縮小できません ' - まだuglifyは私の他のアプリjsファイルのために動作します – Growler

+0

ええ、私はuglifyを通して私を渡し、苦情 - あなたはgulpFilter'がちょうど 'VARのjsFilter =フィルタでuglifyのためだけの.jsファイル(および.cssのための潜在的に別のフィルタ) – derelict

+0

でしょう得るために'を使用してください( '**/*をJS'); 'パイプ(concat( 'modules.js'))。パイプ(jsFilter)... etc'?返すgulp.src(mainBowerFiles())。 – Growler