問題タブ [file-watcher]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ルート ディレクトリに設定された Gulp ファイル ウォッチャー
/**/*.less
たとえば、.less ファイルを含むフォルダーではなく、プロジェクトのルート フォルダーに gulpウォッチャーを設定するとよいでしょうか? ルート フォルダーには、大量のファイル (node_modules、CMS データなど) が含まれている場合があります。
利点は、構成を完全に排除することを目的として、構成内のパスを変更せずに less フォルダーをどこに配置できるかという柔軟性です。
別の方法としては、ルートから始まる共通の最下位の祖先を検索することになりますが、これは大変な作業だと思います。
node.js - ファイルウォッチャーを確実に再起動するには?
データベースをいっぱいにするファイル監視サービスを使用して、500 GB から 1 TBの大きなディレクトリを監視しています。最初のスキャン中に、スキャンおよびネイティブ監視イベント (ファイルの追加、ディレクトリの追加) を開始し、後処理 (メタデータ、サムネイル、データベース チェック) さえ行わないと、完了するまでに 2 ~ 3 時間かかる場合があります。
ウォッチャーが再起動すると(クラッシュや更新など) 、最初のスキャンをやり直す必要があります。その間、次の 2 つのオプションがあります。
フルスキャン- すべてを再処理します
- ウォッチャーは再びすべてのファイル データを調べ、それをデータベース エントリと比較します。
- 異なるものや新しいものが見つかった場合は、データベースが更新されます。
- 速度 : 非常に遅い (~5-6 時間)
- 失われたデータ: なし、最も堅牢
.
気づかないスキャン- 最初のスキャンのイベントを無視する
- ウォッチャーは、ウォッチングを正しく初期化します
- ただし、再起動の開始から初期スキャンの完了までの間に新しいファイルや変更を登録することはできません
- 速度: フルスキャンの約半分の時間 (~2-3 時間)
- 失われたデータ: 多く、あまり信頼できません (変更が発生しない夜間に実行しない限り)
.
さらに、私は 3 番目のオプションを検討しましたが、それが実行可能かどうかはよくわかりません。
バックアップと復元
- 実行中に、2 番目のプロセスを使用して、ウォッチャーのデータと監視を担当するすべてのオブジェクトをバックアップします。
- 再起動時に、最初のスキャンを再実行する代わりに、バックアップ プロセスで保存されたデータを使用して監視を復元します。
- その後、通常どおり作業を続けます
- 速度: ウォッチャー プロセスの再起動に数秒
- 失われたデータ: 再起動の数秒の間に正確にデータの変更が発生しない限り、おそらくありません (私の場合は十分です)。
.
ウォッチャー サービスのバックアップと復元を試したことはありますか? それとも何か考えはありますか?
.
(私の場合、ウォッチャーは node.js、chokidar、fs.watch、FSWatcherおよびいくつかのネイティブ C fs_event_wrapを使用します)
vagrant - Vagrant 共有フォルダーでのファイル ウォッチャーの処理
私は Vagrant 共有フォルダーを使用して、babel をファイル ウォッチャーとして使用するプロジェクトを開発しています。
ただし、ほとんどの場合、ファイルを変更するたびにホスト マシンとゲスト マシンの時間差が原因で、ウォッチャーは変更を認識せず、変更されたアセットを再コンパイルしないため、開発環境全体が役に立たなくなります。
同期戦略を RSync に変更しようとしましたが、ファイル A が A' に変更された場合にのみ機能しますが、B を B' に変更した場合にも機能しますが、ファイル A' を A に戻します。
ゲスト マシン内でファイル ウォッチャー フックを起動したまま、共有フォルダー内のファイルを開発できるワークフローはありますか?
powershell - 特定のフォルダー内のファイル作成を永続的に監視する最も効率的で信頼性の高い方法
フォルダーを監視し、ファイルが作成されるたびに何らかのアクションを実行する必要があります。私には2つの解決策があります.1つはWMIを使用しており、このフィルター(.MOF
ファイルまたは永続的なMWIイベントバインディングを登録するPowershellスクリプトから呼び出されます)を使用して、毎秒フォルダーをポーリングできます:
スクリプト例:
MOF ファイルの例:
自分で間隔を設定できるので、これは良い方法のように思えます。WMI は基本的に Windows の組み込みソリューションであるため、常に安全に作業できます。
これを行う別の方法は、次のようなスクリプトを作成することです。
これは、システム上でスケジュールされたタスクとして実行できます。
私の質問は - これを行う最善の方法は何ですか? 私が示した 2 つのオプションのうちの 1 つは、システム リソースまたはエラーの可能性に関して本質的により効率的ですか?
私が考慮していないこれを行う他の方法はありますか?
Jisaak は、 を使用する回答を追加しましたSystem.IO.FilesystemWatcher
。残念ながら、これは私の目的には理想的ではありません.これは、それを実行したシェルが開いている間にのみ機能するためです.
phpstorm - 一部のファイルが File Watcher で監視されない理由 [PhpStorm 2016.1]
PhpStorm 2016.1 で File Watcher をセットアップしましたが、奇妙な問題が発生しました。
監視されるファイルと監視されないファイルがあります。場所による場合もあれば、種類による場合もあります。一部のファイルが監視されていないパターンを特定することはできません。
ファイルが変更されるたびにシェルスクリプトを実行したいだけです。
PhpStorm でこの種の問題を経験したことはありますか? または、どこをもう少し掘り下げる必要があるか考えていますか?