問題タブ [jake]
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 - 非同期タスクの完了前に Jake タスクの起動が完了
私は主に JavaScript プロジェクトで Rake の可能な代替品として Jake をテストしています。私が奇妙に感じていることの 1 つは、イベントが完了する前に完了イベントがトリガーされていることです。
次に例を示します。
出力は次のようになると予想していました。
ただし、実際に得られるのは次のとおりです。
では、Jake で async がどのように機能するべきかについて、いくつかの魔法がありますか? 実際にexecを終了する前に、何らかの形で完全なイベントを発生させているようです。
==編集==
混乱がないように、Jake https://github.com/mde/jakeのバージョン 0.5.16 を使用してい ます。
==編集2 ==
非同期のタスク内のタスクに関連しているように見えるため、正確な問題をより明確に示す別の例を投稿しました。
bash - ps aux 自動終了アプリ
サーバーが1つのプロセスの起動に失敗したなどの奇妙な状態になったときに特定のサーバープロセスを強制終了するタスクをセットアップしようとしていますが、別のプロセスが実行され続けているため、すべてが起動しません。jake killall
これは主に開発のためのタスクであるため、このプロジェクトに関連するすべてのプロセスを強制終了することができます。
やった後を取得する方法を理解するのに苦労しpid
ています:ps aux | grep [p]rocess\ name | {HOW DO I GET THE PID NOW?}
そしてIDを取得した後、それをどのように渡すのですかkill -9 {PID HERE}
node.js - nodejs ビルド スクリプトから npm をプログラム的に使用する
複数のノード アプリケーション エンドポイントを含む大規模なプロジェクトがあり、それぞれに独自の package.json ファイルがあります。
特定の環境をセットアップし、テストを実行し、アプリをパッケージ化するなどのメイン ビルド スクリプト (jake で記述) があります。
したがって、ルート ビルド スクリプトが指定されたディレクトリで「npm install」を実行する方法はありますか。
疑似コードは次のようになると思います。
これに関するドキュメントが見つからないので、可能かどうかはわかりません...そうですか?
javascript - Jakeビルド(Node.js)でファイルが利用可能になるまで待つ方法は?
Node.js Jake ビルドで、特定のファイルがコピーされるまで待機し、宛先ファイルが見つかった後にのみ何らかの操作を実行する方法はありますか? この質問は、「Node.js/Jake で同期的にファイルをコピーする方法はありますか?」ということになると思います。fs.readSync
(おそらく、との組み合わせを使用して、ゼロから何かを作成する以外の何かfs.writeSync
。)
バックグラウンド:
開発中に Node.js (Express を使用) で実行される Web アプリを開発していますが、本番環境では Java サーバーにデプロイされます。(クライアントで Jade と Stylus を使用し、Express を使用すると、すべての HTML ファイルなどを生成せずにアプリを実行し、変更のたびに展開できます。)
ビルドの作成には Jake を使用します。つまり、Jade ファイルから HTML ファイルを生成し、Stylus ファイルから CSS を生成します。また、アプリのすべての JavaScript ファイルを 1 つの最小化されたファイルに連結し、すべての HTML ファイルを代わりに使用するように変更しようとしています。開発中に「生の」形式で使用されるすべての個別の JS ファイル。
しかし、私は今、その最後のステップに問題があります。私のアイデアは、すべての Jade ファイルを展開ビルド用の一時ディレクトリにコピーし、(すべての HTML ページでヘッダーとして使用される Jade ファイル内の) 参照をすべての個別の JS ファイルのリストに置き換えて、束全体を連結して最小化することによって生成されました。しかし、最初にすべての Jade ファイルを別の場所にコピーし (これは非同期で行われます)、ファイルの 1 つを編集しようとすると、コピー操作がまだ実際には完了していないため、ファイルを開くことが常に失敗します。
これは、私の中に(簡略化された形式で)今あるものですjakefile
:
これはばかげた質問かもしれませんし、そもそも問題を解決しようとするばかげた方法かもしれません。したがって、より良いアプローチの提案も大歓迎です。
アップデート:
また、Parseq を使用して、各操作 (JS ファイルの作成、Jade ファイルのコピー、1 つのファイルの読み取り) を独自の関数に入れてみましたが、それでも同じエラーが発生します。コピー操作の対象ディレクトリを途中で削除せずにスクリプトを数回実行すると、ファイルが見つかります。たとえば、パスは正しく、問題は実際にはタイミングにあるようです。
javascript - ジェイクファイルを読み込めません
私はちょうど jake を利用しようとしましたが、jake が jakefile を読み込めないという本当に奇妙な問題を見つけました。それを解決する方法はありますか?
ディレクトリ構造:
jake_test >> jake.sh
jake_test >> jakefile.js
jake.sh ファイル
ログを取得するコマンド:
トレース ログは次のとおりです。
本当に感謝しています。