2016-04-07 5 views
2

grunt-watchを使用してファイルの変更を監視するのは、変更リストでタスクを呼び出すときにタスクのfiles(またはfileSrc)プロパティに追加/変更されたファイル。gruntで削除したファイルを見る

削除されたファイルではありません。削除されたファイルを監視してタスクを呼び出すと、削除されたファイルはタスクのfilesSrcプロパティまたはfilesプロパティの正規化された部分に表示されません。別に手動で特定files素子のorig性を正規化から

fileSrc又はfilesの正規化された部分に表示されるように削除されたファイルを強制する方法はありますか?そうでない場合は、origを正規化する最良の方法は何ですか(私は車輪を再発明したくありません)?

答えて

2

それはプラグインが設計して、ファイルの配列から削除されたファイルをダンプしている、プラグインはしかし、あなたが聞くことができwatcheventを放出しない可能性があります:

grunt.initConfig({ 
    watch: { 
    scripts: { 
     files: ['**'], 
    }, 
    }, 
}); 
grunt.event.on('watch', function(action, filepath, target) { 
    if (target === 'scripts' && action === 'deleted') { 
    // your code goes here 
    } 
}); 

時計のタスクを設定する方法もありますウォッチャーが削除を検出したときに特定のタスクを実行します。どちらの方法もplugin's documentationに記載されています。

+0

ええ、「必要に応じてファイルをコンパイルする」で説明した手法を使用しました。 'watch'イベントの問題は、グローバルな' watch'リスナーが1つしかないことです。複数の時計ターゲットが同時に動作している場合、特定のイベントがどのターゲットから来ているのかを知る方法がありません。 – gzak

+0

たとえば、jslintで例を取り、jslint(jslint2)と同じようなものを実行する別のウォッチターゲットを実行する必要があるとしますが、別の(ただし重複する)ファイルセットでは、ウォッチリスナーはjslintとjslint2の両方を実行して、2つのセットの和集合のファイル変更を行います(そうしないと、ターゲットの1つのファイルが欠落する可能性があります)。しかし、これは、いくつかのファイルがjslint'ed(またはjslint2'ed)になっている可能性があることを意味します。 – gzak

+0

条件を変更してターゲットを確認してください。 'if(target === 'jslint' && action === 'deleted')' – theaccordance

関連する問題