httml-webpack-pluginの使い方を説明します.
5270 ワード
この記事は個人ブログとSegmentFaultコミュニティの個人欄だけで発表します.転載は出典の個人ブログを明記してください.https://zengxiaotao.github.io SegmentFault個人欄:https://segmentfault.com/blog...
html-webpack-pluginで使用したことがあるかもしれないwebpackの子供靴は全部このpluginを使ったことがあります.使ったことがなくても聞いたことがあります.私たちはwebpackを勉強している時、よくこのようなコードを見ます.
これらはすべてhtml-webpack-pluginの功績です.これは自動的にファイルを作成してくれます.css、jsなどのクラスメイトファイルを参照してください.
自分は6月に初めてフロントエンドの自動化構築に接触しました.webpackとreactを勉強する時、簡単にこのプラグインを使ったことがありますが、よくあるオプションを使っただけです.今日は公式文書に沿って歩いてみます.使い方を全部見てください.
title
名前の通り、生成したhtmlファイルのタイトルを設定します.
filename
何も言いません.ファイルのファイル名を生成します.デフォルトはindex.
template
自分の指定したテンプレートファイルから特定のhtmlファイルを生成します.ここのテンプレートのタイプは、任意のあなたの好きなテンプレートであってもいいです.jade、ejs、hbs、などがありますが、カスタムテンプレートファイルを使う場合は、事前に対応するloaderをインストールしておく必要があります.でないと、webpackは正確に解析できません.jadeを例にとる
templateオプションを指定して、titleオプションを指定したら、webpackはどれを選択しますか?実際には、この時に指定されたテンプレートファイルのtitleを選択します.テンプレートファイルにtitleが設定されていなくても.
では、filenameは上書きされますか?いいえ、指定されたfilenameをファイル名にします.
inject
注入オプション.4つのオプション値true、body、head、falseがあります. true デフォルト値、scriptタグはhtmlファイルのbodyの下にあります. body とtrue head scriptタグはヘッドラベル内にある false は、生成したjsファイルを挿入しないで、単なるhtmlファイルを生成するだけです.
favicon
生成したhtmlファイルにfaviconを生成します.属性値はfaviconファイルがあるパス名です.
minify
minifyの役割はhtmlファイルを圧縮することであり、minifyの属性値は圧縮オプションまたはfalseである.デフォルトの値はfalseで、生成したhtmlファイルを圧縮しません.この圧縮オプションを見てください.
httml-webpack-pluginの内部にhtml-miniferが集められています.この圧縮オプションはhtml-minifyの圧縮オプションと全く同じです.簡単な例を見てください.
hashオプションは、生成されたjsファイルにユニークなhash値を与える役割をしています.このhash値はwebpackでコンパイルされたhash値です.デフォルトの値はfalseです.同じ例を見ます.
デフォルトはtrueです. が した にのみ しいファイルが されることを します.
show Errrors
showErrrorsの は、webpackのコンパイルが っていたら、webpackはエラーメッセージを つのpreラベルに んで、 のデフォルト はtrueで、つまりエラーメッセージを します.
chunks
chunksオプションの は にマルチエントランスファイルです. のエントリファイルがあると、 する のコンパイルされたjsファイルが されます.chunksオプションはこれらの したjsファイルを うかどうかを します.
chunksはデフォルトでは したhtmlファイルの ですべてのjsファイルを します.もちろん、どの のファイルを するかを することもできます.
を る.
exclude Chunks
chunksを したら、exclude Chunksオプションも かります.chunksとは に、いくつかのjsファイルを します.たとえば の では、 の に する.
このオプションはスクリプトタグの を します.デフォルトでは4つのオプションがあります.'none','atot','dependency','function'.'dependency'はもちろん、 なるファイルの に って べ えられます. 'aut'のデフォルト は、プラグイン のソート です. な はここではよく かりません. 'none' ?よく かりません. {function}は を しますか?しかし、 のパラメータは ですか?よく かりません.
このオプションを ったり、 な を っている がいたら、 えてください.
xhtml
ブール のデフォルト はfalseであり、trueであれば、xファイルに するモードでファイルを します.
め りをつける
、
が わる
html-webpack-pluginで使用したことがあるかもしれないwebpackの子供靴は全部このpluginを使ったことがあります.使ったことがなくても聞いたことがあります.私たちはwebpackを勉強している時、よくこのようなコードを見ます.
// webpack.config.js
module.exports = {
entry: path.resolve(__dirname, './app/index.js'),
output:{
path: path.resolve(__dirname, './build'),
filename: 'bundle.js'
}
...
plugins: [
new HtmlWebpackPlugin()
]
}
その後、端末にwebpackコマンドを入力してからwebpack
あなたのbuildフォルダでindex.ファイルとbundle.jsファイルが生成されます.index.ファイルでwebpackが作成したbundle.jsファイルを自動的に参照します.これらはすべてhtml-webpack-pluginの功績です.これは自動的にファイルを作成してくれます.css、jsなどのクラスメイトファイルを参照してください.
自分は6月に初めてフロントエンドの自動化構築に接触しました.webpackとreactを勉強する時、簡単にこのプラグインを使ったことがありますが、よくあるオプションを使っただけです.今日は公式文書に沿って歩いてみます.使い方を全部見てください.
title
名前の通り、生成したhtmlファイルのタイトルを設定します.
filename
何も言いません.ファイルのファイル名を生成します.デフォルトはindex.
template
自分の指定したテンプレートファイルから特定のhtmlファイルを生成します.ここのテンプレートのタイプは、任意のあなたの好きなテンプレートであってもいいです.jade、ejs、hbs、などがありますが、カスタムテンプレートファイルを使う場合は、事前に対応するloaderをインストールしておく必要があります.でないと、webpackは正確に解析できません.jadeを例にとる
npm install jade-loader --save-dev
// webpack.config.js
...
loaders: {
...
{
test: /\.jade$/,
loader: 'jade'
}
}
plugins: [
new HtmlWebpackPlugin({
...
jade: 'path/to/yourfile.jade'
})
]
最終的にはbuildフォルダ内でyourfile.とbundle.jsファイルが生成されます.今からもう一度振り返ってみます.前のタイツの属性を見てみます.templateオプションを指定して、titleオプションを指定したら、webpackはどれを選択しますか?実際には、この時に指定されたテンプレートファイルのtitleを選択します.テンプレートファイルにtitleが設定されていなくても.
では、filenameは上書きされますか?いいえ、指定されたfilenameをファイル名にします.
inject
注入オプション.4つのオプション値true、body、head、falseがあります.
生成したhtmlファイルにfaviconを生成します.属性値はfaviconファイルがあるパス名です.
// webpack.config.js
...
plugins: [
new HtmlWebpackPlugin({
...
favicon: 'path/to/yourfile.ico'
})
]
生成されたhtmlタグには、このようなlinkタグが含まれています.
titleやfilenameと同様に、テンプレートファイルにfaviconを指定すると、この属性は無視されます.minify
minifyの役割はhtmlファイルを圧縮することであり、minifyの属性値は圧縮オプションまたはfalseである.デフォルトの値はfalseで、生成したhtmlファイルを圧縮しません.この圧縮オプションを見てください.
httml-webpack-pluginの内部にhtml-miniferが集められています.この圧縮オプションはhtml-minifyの圧縮オプションと全く同じです.簡単な例を見てください.
// webpack.config.js
...
plugins: [
new HtmlWebpackPlugin({
...
minify: {
removeAttributeQuotes: true //
}
})
]
test minify
test minify
shhashオプションは、生成されたjsファイルにユニークなhash値を与える役割をしています.このhash値はwebpackでコンパイルされたhash値です.デフォルトの値はfalseです.同じ例を見ます.
// webpack.config.js
plugins: [
new HtmlWebpackPlugin({
...
hash: true
})
]
webpackコマンドを すると、 したファイルのscriptタグ で されているjsファイルが えますが、ちょっと わっていますか?bundle.jsファイルの の のhash は webpackコンパイルで するhash です.$ webpack
Hash: 22b9692e22e7be37b57e
Version: webpack 1.13.2
cacheデフォルトはtrueです. が した にのみ しいファイルが されることを します.
show Errrors
showErrrorsの は、webpackのコンパイルが っていたら、webpackはエラーメッセージを つのpreラベルに んで、 のデフォルト はtrueで、つまりエラーメッセージを します.
chunks
chunksオプションの は にマルチエントランスファイルです. のエントリファイルがあると、 する のコンパイルされたjsファイルが されます.chunksオプションはこれらの したjsファイルを うかどうかを します.
chunksはデフォルトでは したhtmlファイルの ですべてのjsファイルを します.もちろん、どの のファイルを するかを することもできます.
を る.
// webpack.config.js
entry: {
index: path.resolve(__dirname, './src/index.js'),
index1: path.resolve(__dirname, './src/index1.js'),
index2: path.resolve(__dirname, './src/index2.js')
}
...
plugins: [
new HtmlWebpackPlugin({
...
chunks: ['index','index2']
})
]
webpackコマンドを すると、 したindex.ファイルの にindex.jsとindex.2.jsだけが されます....
chunksオプションが されていない は、デフォルトはすべて されます.exclude Chunks
chunksを したら、exclude Chunksオプションも かります.chunksとは に、いくつかのjsファイルを します.たとえば の では、 の に する.
...
excludeChunks: ['index1.js']
chunks SortModeこのオプションはスクリプトタグの を します.デフォルトでは4つのオプションがあります.'none','atot','dependency','function'.
このオプションを ったり、 な を っている がいたら、 えてください.
xhtml
ブール のデフォルト はfalseであり、trueであれば、xファイルに するモードでファイルを します.
め りをつける
、
new HtmlWebpackPlugin()
に されたオプションをまとめました.すべてのオプションの を ると、プロジェクト により に することができます.が わる