[解決済み] webpackでCSSとJSを別々に生成することはできますか?
質問
私は持っています。
- バンドルしたいJSファイル。
- CSSにコンパイルしたいLESSファイル(@importを1つのバンドルに解決する)。
私は、これらを 2 つの別々の入力として指定し、2 つの別々の出力を持つことを望んでいました (おそらく extract-text-webpack-plugin を使用します)。Webpack にはコンパイルを行うための適切なプラグイン/ローダーがすべてありますが、分離が好きではないようです。
JS から直接 LESS ファイルを要求している例を見たことがありますが、例えば
require('./app.less');
のように、JS から直接 LESS ファイルを要求している例を見ました。これは、webpack にこれらのファイルをバンドルに含めるように指示するためです。これは単一のエントリポイントを持つことを可能にしますが、私には本当に間違っているように思えます - 私の JS コードとは何の関係もないのに、なぜ私の JS で LESS を要求しなければならないのでしょうか?
複数のエントリポイントを使用して、エントリJSとメインのLESSファイルの両方を渡してみましたが、複数のエントリポイントを使用すると、webpackはロード時にJSを実行しないバンドルを生成します -- すべてをバンドルしますが、起動時に実行されるべきものを知りません。
私は webpack の使い方が間違っているのでしょうか?これらの別々のモジュールのために webpack の別々のインスタンスを実行するべきですか?JS に混ぜるつもりがないなら、非 JS 資産に webpack を使うべきなのでしょうか?
どのように解決するのですか?
JSに混ぜるつもりがないなら、JS以外のアセットにもwebpackを使うべきでしょうか?
そうではないかもしれません。Webpackは間違いなくjs中心で、あなたが作っているものはjsアプリケーションであるという暗黙の前提があります。その実装は
require()
の実装により、あらゆるものをモジュールとして扱うことができ(Sass/LESSのパーシャルやJSONなど、あらゆるものを含む)、依存関係の管理も自動的に行われます(あなたが
require
はバンドルされ、それ以外のものはバンドルされません)。
LESSは私のJSコードとは何の関係もないのに、なぜ私のJSにLESSを要求しなければならないのでしょうか?
アプリケーションの一部(ReactコンポーネントやBackboneビューなど)をjsで定義しているために、人々はこれを行います。アプリケーションのその部分には、それに付随するCSSがあります。jsモジュールから直接参照されず、別々に構築された外部CSSリソースに依存することは、壊れやすく、作業が困難で、スタイルが古くなるなどの可能性があります。Webpackはすべてをモジュール化しておくことを推奨しているので、そのjsコンポーネントに対応するCSS(Sassでも何でも)パーシャルを用意し、jsコンポーネント
require()
で依存関係を明確にします(あなたにとっても、ビルドツールにとっても、必要ないスタイルはビルドされません)。
CSSファイルがどのjsからも参照されない場合)webpackを使用してそれ自身でCSSをバンドルできるかどうかはわかりません。プラグインなどで配線することは可能だと思いますが、いきなりは無理でしょう。jsからCSSファイルを参照している場合は、おっしゃる通りExtract TextプラグインでCSSを別ファイルにバンドルするのが簡単です。
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] CSSでcellpaddingとcellspacingを設定する?
-
[解決済み] JavaScriptで整数の除算を行い、余りを別途取得する方法は?
-
[解決済み] webpackでjQueryプラグインの依存関係を管理する
-
[解決済み】CSSを使用して、すべてのブラウザでdiv要素を垂直方向に中央に配置するにはどうすればよいですか?
-
[解決済み] Webpackでベンダースクリプトを個別にバンドルし、必要に応じて要求する方法とは?
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] これは純関数ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSのDateからDay名
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] Javascript / jQueryでAndroid端末を検出する。
-
[解決済み] Reactメモを使うべきではない場合とは?
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] Node.jsのES6クラスをrequireで作る
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
-
[解決済み] これは純関数ですか?