5 つのファイルを含む node.js の単純な js コードがあります。
+--compress.js
+--util
+--vector.js
+--map.js
+--set.js
+--util.js
次に、compress.js require
s set.js と util.js、set.js require
s map.js を順にrequire
s vector.js と util.js で、このコードを自分の単純な Web サーバー (高速アプリ) からブラウザーに提供したいと考えています。 . どのようなオプションがありますか? 私は初心者なので、基本的な質問とそうでない質問があります。私のhtmlページからcompress.jsを含めたい場合、可能なオプションについて知りたいです。私が理解しているように、node.js およびブラウザーと互換性があるようにコードを変更できます。そのために私は何を使用しますか、require-js? コードがサーバー側とクライアント側と互換性がある場合、これは nodejs でどのように呼び出されますか? もう 1 つのオプションは、browserify を使用して、クライアント側で使用できるバージョンの compress.js を生成することです。
次に、そのcompress.jsファイルを縮小できる(そして対応するマップファイルを作成できる)uglify-jsがありますよね?
今の私の目標は、js コードを変更せずに、ブラウザーからアクセスできるようにすることです。そのためには、私が理解しているように、これらのファイルを自動的にブラウザ化 (たとえば、正しい順序で連結) し、uglify を介して結果を渡し、その場で結果を提供するサーバー側コードを実行する必要があります。私の理解では、compress.js というファイルを 1 つだけ含めて、そのコードを chrome でデバッグしようとすると、これらのすべてのファイルをそのまま chrome に含めたかのように、chrome デバッガーに表示されます。依存関係を含める nodejs スタイルの方法. 私は正しいですか、それを達成するためにどのツール/ライブラリを使用する必要がありますか?
次のステップは、そのオンザフライ変換の結果をキャッシュして、含まれているファイルのいずれかを変更した場合 (たとえば、ライブ サーバーで編集したり、変更されたバージョンに完全に置き換えたりした場合)、すべての依存ファイルが自動的に必要になるようにすることです。再生されます。これは、compress.js の次の GET で発生する可能性があります (たとえば、内部的にアプリの依存関係グラフで覚えて、それぞれで確認する必要がありますGET /compress.js
)、または、何らかのファイルシステム/OS イベント フックを追加する必要があります。いずれかのファイルが変更されたときにアプリでイベントを発生させ、そのイベントにより、compress.js (またはその他のファイル) の browserified + uglified バージョンの再構築がトリガーされます。node.jsでそのようなことを行うための既存のオプションはありますか、それともすべて自分で実装する必要があります(その場合、どのライブラリツールを調べるべきですか?)
- これは私が望むものを生成するように見えます(マップ付きのブラウザー化+醜いバージョン): https://github.com/gulpjs/gulp/blob/master/docs/recipes/browserify-uglify-sourcemap.md