2017-04-19 4 views
0

私はファビコンを生成するgulpタスクを持っています。私はこのプロジェクトをいくつかのプロジェクトに再利用したいと思います。これは、realfavicongenerator.netが出力するgulpファイルに基づいています。複数のプロジェクトでgulpタスクを使用する

これにはどのようにアプローチできますか? faviconジェネレータのタスクはgit repoです。私の他のプロジェクトでサブモジュールとして参照できますか?または、これをnpmまたはbowerパッケージとして生成する必要がありますか。

発電機タスクにいくつかのオプションを渡して、デフォルト設定を上書きできるようにしたいと思います。

私はどこから始めるべきか分かりません。正しい方向への助けがあれば大歓迎です。我々は、すべての一口を使用して、複数のフロントエンドのプロジェクトを持っていたので、

おかげ

+0

私の助けは何ですか?そうでない場合は、お客様のご要望をお聞かせください。別の回答が見つかった場合は、それを書いて受け入れることをお勧めします。 –

+1

こんにちはエミール、私はこれを見ていくつかの進歩を遂げましたが、私は今仕事の優先順位のためにこれを残す必要があった、私はあなたが私がどのように取得することをお知らせします - ありがとう – onebitrocket

答えて

1

は、私は、再利用可能な一気の作業を行いました。私が見つけた最も良い方法は、git URLを使って他のプロジェクトに追加する私用のnpmパッケージを作ることでした。

共有可能なタスク

のNode.jsのモジュールをビルドする必要なのはindex.jspackage.jsonとのレポです。必要なgulpの依存関係をインストールし、パッケージファイルに保存します。

index.jsには、タスクとして再利用する機能をエクスポートします。このモジュールは、タスクを行うために必要なほとんどの依存関係を使用することになりますので

const gulp = require('gulp'), 
    gulpif = require('gulp-if'), 
    concat = require('gulp-concat'), 
    args = require('yargs').argv; 

module.exports = { 
    concat: function(src, dest, options) { 
     return gulp.src(src) 
      .pipe(gulpif(args.prod, concat())) 
      .pipe(gulp.dest(dest)); 
    } 
}; 

することは、あなたの他のプロジェクトの依存関係は、彼らが明示的に必要最小限に縮小されます。

は、あなたの他のプロジェクトでは、

その後、あなたのタスクモジュールを使用してGitのURLでパッケージをインストールします。

npm install --save-dev git+ssh://[email protected]:onebitrocket/onebitrocket-gulp-utils.git 

このGitのURLフォーマットもyarnで動作します。

あなたのプロジェクトのgulpfile.jsでは、それを使用してください。

const gulp = require('gulp'), 
     onebitrocket = require('onebitrocket-gulp-utils'); 

// use a function which returns the result of your util. 
gulp.task('js',() => onebitrocket.concat('src/**/*.js', 'www/')); 

注:それはそれを使用するために、NPMレジストリにパッケージを公開する必要はないです。必要なのは、リポジトリへの読み取りアクセス権のみです。

+1

私はついにこれに取り組んで行く。うまくいく。それは価値があるため、私は同じ出力を必要とするいくつかのプロジェクトで再利用可能なモジュールにrealfavicongeneratorによって生成されたgulpタスクを抽象化しています。 – onebitrocket

関連する問題