webpack-dev-serverをhtml-webpack-pluginで開発して、リビジョンソースのindex.htmlを生成しました。私がindex.htmlを変更するたびに、バンドルシステムは再構築されません。私はインデックスがエントリにないことを知っているが、これを解決する方法はありますか?webpack-dev-serverとhtml-webpack-pluginを使用してindex.htmlを見る方法
答えて
問題は、index.htmlがWebpackによって監視されていないことです。コード内のどこかで「必要」または「インポート」されているローダーがテストしているファイルのみを監視します。
溶液には2つの部分があります。
最初は、エントリポイントにindex.htmlファイルが必要です。技術的には、アプリケーションのどこにでもそれを要求できますが、これは非常に便利です。 html-webpack-pluginでテンプレートを使用している場合は、テンプレートを要求することもできます。
私は私のエントリポイントである私のindex.jsファイル、で私のindex.htmlを要求さ:
最後にrequire('./index.html')
const angular = require('angular')
const app = angular.module('app', [])
//...so on and so forth
、あなたのWebPACKの設定に、あなたの他のローダーの全てでraw-loaderをインストールして追加ファイル。したがって:
{
test: /\.html$/,
loader: "raw-loader"
}
生ローダは単なるテキストの文字列に「必要」された任意のファイルについて変換されますと、その後、WebPACKのはあなたのためにそれを見て、DEV-サーバーに変更を加えるたびに更新されます。
Webpack自体も、あなたのプログラムも、ロードされた段階でindex.htmlファイル(またはテンプレート)で実際に何もしません。それは私が開発サーバを実行している場合ので、ちょうど良い対策のために、私はそれを追加し、本番やテスト環境のための完全に不要です。
/* eslint no-undef: 0 */
if (process.env.NODE_ENV === 'development') {
require('./index.html')
}
const angular = require('angular')
const app = angular.module('app', [])
//...so on and so forth
理論的にはあなたが他の静的なHTMLの束「に必要」することができますあなたが見たいファイルです。 ...またはその問題のテキストファイル。私はAngularディレクティブテンプレートにはrawローダーを使用しますが、エントリーポイントの先頭に追加する必要はありません。
module.exports = function(app) {
app.directive('myDirective', function(aListItem) {
return {
template: require('./myTemplate.html'),
restrict: 'E',
controller: function($scope) {
$scope.someThingThatGoesInMyTemplate = 'I love raw-loader!'
}
}
})
}
単にあなたのdevServer
の設定にwatchContentBase: true
を追加します。これは次のように私は、ディレクティブのテンプレートプロパティの内部で必要とすることができます。 webpack-dev-serverはcontentBase
dirにあるすべてのファイルの変更を監視します。ここでは、./src内のすべてのファイルが
webpack.config.js見る:
... devServer: { port: 8080, contentBase: './src', watchContentBase: true }
私はhtml/twigを見るための単純な解決策を見いだそうとしています(テンプレート)ディレクトリに移動し、それらの変更時にページをリロードするだけです。私はSPA以外のサイト(Craft CMS)にwebpack&dev-serverを使用しています。 ''。単純な解決策は、ドキュメント全体の中にあったが、ユースケースのピックアップではなかった。この回答ありがとう! –
- 1. テンプレート内の動的変数を使用してhtmlWebpackPluginでnunjucksを使用する
- 2. HtmlWebpackPluginを使用しているときにwebpackManifestが未定義です
- 3. 角を使用してindex.htmlのsrcタグにタイムスタンプを追加する方法
- 4. webpackのWebpackDevServerと並行してカスタムディレクトリにファイルをエクスポートします
- 5. Pythonを使用してテキストを列見出しとしてスキップする方法
- 6. メソッドを使用する方法を見てJavaドキュメントを見ると、
- 7. IISを使用したURLからIndex.htmlを化粧で除去する方法
- 8. HtmlWebpackPlugin順
- 9. WAPページを使用してモバイルモデルを見つける方法
- 10. プロファイラを使用してメモリリークを見つける方法
- 11. Powershellを使用して、ファイルフルネームでマウントポイントドライブを見つける方法
- 12. dynastyjs:セカンダリグローバルインデックスを使用してアイテムを見つける方法
- 13. MongoDB Javaドライバを使用してデータディレクトリを見つける方法
- 14. JavaScriptを使用してファイル名を見つける方法
- 15. シェルスクリプトを使用してシェルタイプを見つける方法
- 16. Axis2を使用してサーバーサイドフレームワークを見つける方法は?
- 17. IList.Contains()メソッドを使用してオブジェクトを見つける方法
- 18. タイムスタンプを使用して前の行を見つける方法
- 19. javascriptを使用して翌日を見つける方法
- 20. groovyを使用してxmlタグを見つける方法
- 21. PHPを使用してパブリックフォルダを見つける方法は?
- 22. SqlBulkCopyを使用してバルクインサートを垣間見る方法
- 23. Webpackを使用してindex.htmlの外部ファイルをリンクする
- 24. WebpackDevServerの使用中にReactRouterがインポートされない
- 25. node-redとraspberry pi-3デバイスを使用してモバイルプレゼンスを見つける方法
- 26. AltBeacon:RegionBootstrapとRangeNotifierを使用してビーコンのリストを見つける方法
- 27. SeleniumとPythonを使用してInternet Explorer要素を見つける方法
- 28. Wamp localhostを使用してindex.htmlにアクセスするには?
- 29. Installshieldを使用してアプリケーションをインストールするときに使用できるオプションを見つける方法
- 30. webpackDevServerでドッキングされたDjango
私の解決策で問題が解決しましたか?私はあなたがこれを行ういくつかの他の方法を見つけたかどうかを知りたいです。 –
私は同じボートに乗っています。私は別の資産を参照して、2つの異なるindex.html、生産用と開発用の1つを避けようとしています。 – Spock
@ Spock下の私の答えを参照してください。エントリポイントでテンプレートを要求することができます。テンプレートを変更するたびに、開発者サーバーが更新されます。 –