web-dev-qa-db-ja.com

bower_componentsをバンドルするタスクをガルプしますか?

束ねたバウアーのコンポーネントを処理するための良い方法を教えていただければ幸いです。私はすべてを試したように感じます...しかし、私はすでにこれを処理する一味のタスクを見つけることができないようです。本当に存在しないのでしょうか?

存在しないとしましょう。最悪のシナリオは、bower_componentsフォルダーからの各「dist」ファイルのパスを指定する必要があることです。 (各コンポーネントが独自の「dist」フォルダを持っているように見えるのは面倒です...何も標準化されていません。)

そのため、たとえそれを行ったとしても、 'active-support'のようなコンポーネントにはrequire('lodash')などが含まれているようです。単にそのファイルをコピーするだけでは、requiresが解決しないので壊れると思います。

私は何が欠けていますか?すべてのbower_componentsを単に "common.js"にバンドルするにはどうすればよいですか...方法はありますか、それともclusterfluckですか?

27
JayPrime2012

更新

Alertyが指摘したように、新しいGulpポリシーは次のように思われます。bowerを直接使用し、globパターンを使用します(パッケージのメンテナーが適切な「無視」プロパティを持っていることを願っています)。


以前は

main-bower-files または gulp-bower-src を使用して、bowerコンポーネントからファイルを取得できます。また、独自のbowerファイルで「無視」または「メイン」オーバーライドを使用することもできます。

12
Brian Clozel

これは私がそれを管理した方法です(しかし、プロジェクト構造についてはgulpfile.jsを参照してください、それは単一の巨大なgulpfileではありません):

https://github.com/notbrain/viceroy/blob/master/gulp/tasks/bower.js

すべてのbower depsを連結し、dev/prod envターゲットに基づいてdist /ソースの場所でuglify()およびminifyCSS()タスクを個別に実行するには、もう少しモジュール化されますが、今後の更新を待つ必要があります。

2
Brian

次のようなフォルダがある場合:

-app
-bower
-node_modules
Gulpfile.js
package.json

ソリューションは次のとおりです。

gulp.task("connect", function () {
  connect.server({
    root: ["app"],
    livereload: true,
    port: 8034,
    middleware: function (connect) {
      return [connect().use("/bower", connect.static("bower"))];
    }
  });
});
0
vlad mehera

main-bower-files を使用します。

var gulp = require('gulp');
var mainBowerFiles = require('main-bower-files');

gulp.task('TASKNAME', function() {
    return gulp.src(mainBowerFiles())
        .pipe(/* what you want to do with the files */)
});
0
Edward Brey