96

処理したいファイルの配列を gulp.src に渡そうとしています。これはそのままの配列です。

['bower_components/jquery/jquery.js',
 'bower_components/superscrollorama/js/greensock/TweenMax.min.js',
 'bower_components/superscrollorama/jquery.superscrollorama.js' ]

私は gulp.src がそれを好まないようで、3番目の要素が最終目的地に到達しないことを発見しています。

次のようなワイルドカード文字を導入すると、すべてが正常に機能することがわかりました。

['bower_components/**/jquery.js',
 'bower_components/**/js/greensock/TweenMax.min.js',
 'bower_components/**/jquery.superscrollorama.js' ]

しかし、なぜ?グロビングの仕組みと関係がありますか? 私はグーグルで検索しましたが、見つけることができません。

これはグロビングの意図した目的ではないかもしれませんが、このように動作することは私には意味がありません。誰でも光を当てることができますか?

4

1 に答える 1

164

完全パスの配列を渡すと、各ファイルは個別に処理されます。グロビングは、パスのルートがどこにあるかを知りません (実際、最初のグロブに基づいて推測します)。したがって、各ファイルは含まれるフォルダーにルートがあり、相対パスは空です。

ただし、簡単な解決策があります。baseの 2 番目の引数としてキーを持つオブジェクトを渡すgulp.srcと、すべてが正しい相対パスになります。

return gulp.src(['bower_components/jquery/jquery.js',
                'bower_components/superscrollorama/js/greensock/TweenMax.min.js',
                'bower_components/superscrollorama/jquery.superscrollorama.js' ],
            {base: 'bower_components/'})
        .pipe(...);
于 2014-01-27T17:17:26.037 に答える