
前回の記事の公開とそこに表示されているHTMLフラグメントを最小化する例が関係しなくなってから、ほぼ1年が経過しました(HTMLファイルを編集する場合、コンテキストメニューの[Web Essentials]> [選択の縮小]コマンドは使用できなくなりました)。 この機能の重大な変更は、バージョン12がリリースされた昨年の12月に発生しましたが、その時点でこれに関する記事を書く時間がありませんでした。 この間、誰もこの機能をロシア語で説明していなかったため(英語ではDavid Packetによる「Minifying your HTML」という記事があります )、追いつきましょう。
バージョン1.5では、HTMLファイルのコンテキストメニューに2つの非常に便利なコマンドが追加されました。
- HTMLファイルを縮小する
- HTMLバンドルファイルを作成する
原則として、これらのコマンドは、JavaScriptファイルとCSSファイルの同じ名前のコマンドに非常に似ています。
この記事では、 WebMarkupMin 0.8.21をサポートするWeb Essentials 2013の最新の安定バージョン(バージョン2.3)を検討します。
HTMLの最小化
Web Essentials 2013を使用したHTMLファイルの最小化は非常に簡単です。 ソリューションエクスプローラーで、 1つ以上のHTMLファイルを選択し( CTRLキーを押しながら )、右クリックしてWeb Essentials> Minify HTML file(s ) (図1)。

図1. HTMLファイルshell.htmlの最小化。
最小化が成功した場合、 ソリューションエクスプローラーの
shell.html
ファイルの下に、最小化されたバージョン
shell.html
が表示され、Visual Studioステータスバーに最小化によって保存できた量に関する情報が表示されます(図2)。

図 2. shell.html HTMLファイルを最小化した結果。
最小化中にエラーが発生すると、エラーメッセージのあるウィンドウが表示されます。
.min.css
および
.min.js
ファイルとは異なり、作成された
.min.html
ファイルは、デフォルトではソースファイルが保存されるたびに再生成されませんが、この動作は設定で変更できます。 HTML最小化設定に移動するには、メニュー項目[ ツール ] > [オプション]> [Web Essentials]> [HTML ]を選択し、[ 縮小]カテゴリに移動します(図3)。

図 3. HTML最小化設定。
縮小カテゴリのすべてのプロパティを詳細に検討します。
物件 | データ型 | デフォルト値 | 説明 |
---|---|---|---|
gzip圧縮されたファイルを作成する | ブール値 | false
| このプロパティの値がtrue
、最小化中に、 .min.html
ファイルに加えて、 .min.html
ファイルも作成されます(GZipで圧縮された .min.html
ファイル)。 HTMLの最小化とGZip圧縮を共有することの利点については、Mads Christensen の記事、Gzipの効果と対比の効果を参照してください。 HTMLファイルを縮小しています 。 」 |
Minification Mode
| リスティング | KeepQuotes
| HTML属性の引用削除モード。 次の値を取ることができます。
|
保存時にファイルを縮小する | ブール値 | false
| このプロパティの値がtrue
場合、作成された .min.html
ファイルは、元のファイルが保存されるたびに再生成されます。 |
HTMLバンドルの作成
HTMLバンドルを作成するには、 ソリューションエクスプローラーで複数のHTMLファイルを選択し、右クリックして表示されるコンテキストメニューで[ Web Essentials]> [HTMLバンドルファイルの作成 ]を選択する必要があります(図4)。

図 4. HTMLバンドルを作成します。
表示される[名前を付けて保存 ]ダイアログボックスで、バンドル名を指定し、[ 保存 ]ボタンをクリックする必要があります(図5)。

図 5. [名前を付けて保存]ダイアログボックス。
その結果、3つのファイルが作成されます:
content.html.bundle
(バンドル設定を含むXMLファイル)、
content.html
(ソースファイルのコンテンツを結合した結果)、および
content.min.html
(最小化された
content.html
)(図6)。
設定によりGZipファイルの作成が有効になっている場合、4番目のファイル(content.min.html.gzip)も生成されます。

図 6. HTMLバンドルを作成した結果。
また、HTMLファイルを結合する場合、Web Essentialsは次の形式の名前付きコンテナーを作成しないことに注意してください。
<div id="___" style="display: none;">…</div>
この例では、
change-log.html
、
change-log.html
contact.html
および
index.html
の内容を
change-log.html
連結することにより、
change-log.html
ファイルが作成されました。
HTMLバンドル設定は、HTML最小化設定と同じウィンドウにあります(図7)。

図 7. HTMLバンドルの設定。
バンドルカテゴリのすべてのプロパティを詳細に検討します。
物件 | データ型 | デフォルト値 | 説明 |
---|---|---|---|
カスタムHTML出力ディレクトリ | ひも | 空行 | 生成されたHTMLファイルが保存されるディレクトリへのパスを指定します(バンドル設定のあるファイルはそこに移動されません)。 相対パス(たとえば../../Content/html-bundles
)と絶対パス(たとえば C:\html-bundles
)の両方を指定できます。 |
バンドルの作成時にファイルを縮小する | ブール値 | true
| バンドルのHTML最小化を有効/無効にします。 |
ビルドで実行 | ブール値 | false
| このプロパティの値がtrue
、プロジェクトのビルド中にHTMLファイルが再生成されます。 このオプションは、バンドルに含まれるHTMLファイルをVisual Studioの外部で編集できる場合に役立ちます。 |
.html.bundle
ファイル)。
リスト1. content.html.bundleファイルのバンドル設定。
<?xml version="1.0" encoding="utf-8"?> <bundle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://vswebessentials.com/schemas/v1/bundle.xsd"> <settings> <!--Determines if the bundle file should be automatically optimized after creation/update.--> <minify>true</minify> <!--Determin whether to generate/re-generate this bundle on building the solution.--> <runOnBuild>false</runOnBuild> <!--Specifies a custom subfolder to save files to. By default, compiled output will be placed in the same folder and nested under the original file.--> <outputDirectory></outputDirectory> </settings> <!--The order of the <file> elements determines the order of the files in the bundle.--> <files> <file>/App_Data/text-content/change-log.html</file> <file>/App_Data/text-content/contact.html</file> <file>/App_Data/text-content/index.html</file> </files> </bundle>
コードから、要素
outputDirectory
、
minify
、および
runOnBuild
使用すると、以前に行った設定をオーバーライドできることがすぐにわかります。 さらに、
files
要素では、バンドル内のファイルの順序を変更できますが、これはVisual Studioインターフェースでは不可能でした。
参照資料
- 公式Web Essentials VS拡張Webサイト
- David Packettの記事「HTMLの最小化」
- Mads Christensen の記事、GZippingの効果vs. HTMLファイルの縮小»
- CodePlexのWebMarkupMinプロジェクトページ
- 私の記事「Web Essentials 2013のHTML最小化」
- 私の記事「WebMarkupMin HTML Minifier-.NETプラットフォーム用の最新のHTMLミニマイザー」