1

私はこのタスクを持っています:

  • html:

    • .jade を .html に変換する
    • bower リソース (css、js、およびフォント) を /dest/vendor フォルダーにコピーします。
    • bower リソースを .html に追加 (スクリプトおよびリンク タグ)
    • js (/dest/js から) と css (/dest/css から) を .html に追加します (前のように)。
  • 建てる

    • /dest フォルダーを消去する
    • 私の js を /dest/js にコピーします (コピーするだけで、プロセスはありません)
    • less ファイルを処理し、css として /dest/css に移動します

実行してから実行するgulp buildgulp html、すべて正常に動作します。ただし、htmlビルドの最後の部分として追加すると、それ以上機能しません。Jade は .html ファイルに変換され、すべてのリソース (my および bower) が /dest フォルダーにコピーされますが、wiredepand inject(スクリプトおよびリンク タグを追加する) は何も表示されません。

これは私のタスク (の一部) です: https://gist.github.com/Falci/f52d4144318c9d5e4c2f

4

1 に答える 1

1

あなたのビルドには潜在的な問題がいくつか見られます。

  1. 各タスクからストリームを返す必要があります。Gulp は、各タスクの戻り値に基づいて、そのタスクがいつ終了するかを判断します。戻り値のないタスクを別のタスクの依存関係として使用すると、依存関係はタスクの終了を待たずにすぐに解決されます。コールバックを使用する代わりに、戻り値を使用する必要がありnext()ます。

    function htmlAssetsTask () {
        var sources = gulp.src(config.filesets.assetsDest, {read: false});
        return gulp.src(config.filesets.html)
        ...
    }
    
  2. Gulp タスクの依存関係は順番に実行されません。これは、タスクで次のことを意味します。

    gulp.task('build', ['clean:dest', 'build:js', 'build:less', 'html']);
    

    依存関係は任意の順序で実行できます。重要な場合は、タスクの依存関係の順序を確認するためにrun-sequenceパッケージを使用することをお勧めします。

于 2015-03-09T19:59:45.040 に答える