[解決済み] Webpackとwebpack-dev-serverとwebpack-dev-middlewareとwebpack-hot-middlewareとetc.
質問
私は今
webpack
を使って
node/express
を開発する環境
ReactJS
でサーバサイドレンダリングアプリケーションを開発する
react-router
. devとprod(実行時)環境での各webpackパッケージの役割について、非常に混乱しています。
以下、私の理解のまとめです。
webpack
: パッケージとは、ウェブアプリケーションの異なる部分を結合し、単一の .js ファイルにバンドルするためのツールです (通常は
bundle.js
). このファイルは、アプリケーションによって読み込まれるようにprod環境で提供され、コードを実行するために必要なすべてのコンポーネントを含んでいます。機能には、コードの縮小、最小化などがあります。
webpack-dev-server
: を提供するパッケージですか?
サーバ
を使用して、ウェブサイトのファイルを処理します。また、単一の .js ファイルを構築します (
bundle.js
) を構築しますが、それはメモリ内で提供されます。また、オプションで (
-hot
) のオプションもあり、すべてのビルドファイルを監視し、コードが変更された場合にはメモリ上に新しいバンドルをビルドします。サーバーはブラウザで直接提供されます (例:
http:/localhost:8080/webpack-dev-server/whatever
). インメモリローディング、ホットプロセッシング、ブラウザサーブの組み合わせにより、ユーザーはコードが変更されたときにブラウザ上でアプリケーションを更新することができ、開発環境として理想的です。
私は上記のテキストについて疑問がある場合、私は以下の内容について本当にわからないので、必要に応じて私に助言してください。
を使用する際によくある問題です。
webpack-dev-server
と
node/express
は、その
webpack-dev-server
はサーバーであり、同様に
node/express
. そのため、この環境はクライアントといくつかのnode/expressコード(APIなど)の両方を実行するには厄介なものとなっています。
注:これは私が直面したものですが、なぜそれがより詳細に起こるかを理解するのは素晴らしいことだ...
webpack-dev-middleware
: と同じ機能を持つミドルウェアです。
webpack-dev-server
と同じ機能(インメモリバンドル、ホットリロード)を持つミドルウェアですが、その形式は
server/express
アプリケーションに注入できる形式です。このようにして、ある種のサーバー(
webpack-dev-server
: この...
を探していて、この作品を見つけました。
webpack-hot-middleware
... 使い道は不明です。
注:間違った考えがある場合は申し訳ありません。私は本当に複雑な環境でこれらの変種を理解するために助けを必要としています。もし便利であれば、シナリオ全体を構築するためのパッケージやデータを追加してください。
どのように解決するのですか?
webpack-dev-middleware
説明したように、Webpackはモジュールバンドルラーであり、主にブラウザで実行できるように様々なモジュール形式を束ねます。これは CLI と ノードAPI .
webpack
Webpack Dev Middleware は、Express サーバーにマウントすることで
最新コンパイル
を提供します。これには
webpack-dev-middleware
の Node API を
ウォッチモード
で、ファイルシステムへ出力する代わりに
メモリに出力する
.
比較のために、次のようなものを使うかもしれません。
webpack
のようなものを使うかもしれません。
express.static
Webpack Dev Server はそれ自体がエクスプレスである
サーバ
であり
webpack-dev-server
を使用して最新のバンドルを提供し、さらにクライアントのライブモジュール更新のためのホットモジュール交換 (HMR) リクエストを処理します。
webpack-dev-middleware
Webpack ホットミドルウェアは
webpack-hot-middleware
と並んで、既存/カスタムの express サーバーにマウントすることができます。
webpack-dev-server
.
また...
webpack-dev-middleware
さらに混乱させるために、Webpack Hot Server Middlewareもあります。
webpack-hot-server-middleware
そして
webpack-dev-middleware
で、サーバー・レンダリング・アプリのホット・モジュールの置き換えを扱います。
関連
-
[解決済み】webpack-dev-serverにリモート接続すると、「Invalid Host header」というメッセージが表示されます。
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] webpackでjQueryプラグインの依存関係を管理する
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] CORS: 認証モードは 'include' です。
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?