この記事では、webpack による HTML ファイルの処理について説明します。手順は非常に詳細なので、必要な方は参考にしてください。
HTML ファイルを処理する理由
すべてのメソッドは dist ファイル フォルダーと html にパッケージ化されています。これらの dist フォルダー内の js を src 経由で 1 つずつ手動でインポートすると、信頼性が低すぎるため、解決策は次のとおりです: Webpack プラグインを使用します: HtmlWebpackPlugin
- rreee
- step2:
webpack.config.js
configurationshtmlwebpackpluginの構成項目は次のとおりです。 title
{String}webpack.config.js
配置
其中HtmlWebpackPlugin的配置项有:
Name | 类型 | Description |
---|---|---|
title | {String} | 用于生成的HTML文档的标题 |
filename | {String} | 要生成HTML的文件。可以指定目录 |
template | {String} | 依据的模板文件 |
inject | {Boolean|String} | 将js资源注入到页面哪个部位,值有:true ‘head’ ‘body’ false,当传递true或’body’所有JavaScript资源将被放置在正文元素的底部。’head’将脚本放置在head元素中 |
favicon | {String} | 将给定的图标路径添加到输出HTML |
hash | {Boolean} | 如果true将webpack所有包含的脚本和CSS文件附加一个独特的编译哈希。这对缓存清除非常有用 |
chunks | {?} | 放入你需要引入的资源模块 |
excludeChunks | {?} | 不放入你某些资源模块 |
预期目标: 我的项目是一个多入口文件的项目,希望每一个入口页面引入对应的js模块和css
比如login页面引入login的js和css、index引入对应js和css
webpack.config.js
配置如下:
npm install --save-dev extract-text-webpack-plugin
然后打包结果如下
其中生成的目标文件:
为什么去处理html文件
我们所有的方法都打包到了dist的文件夹下面,而我们的html是在自己定义的文件夹下面,如果自己手动再去一个一个src引入这些dist文件夹下的js,那么也有些太不靠谱了
所以解决办法是:
使用webpack插件:HtmlWebpackPlugin
第一步:下载
const path = require('path');const webpack = require('webpack')const ExtractTextPlugin = require("extract-text-webpack-plugin");const HtmlWebpackPlugin = require('html-webpack-plugin');const configs = { entry:{ 'commom':['./src/page/common/index.js'], 'index':['./src/page/index/index.js'], 'login':['./src/page/login/index.js'] }, output:{ path:path.resolve(__dirname, 'dist'), filename:'js/[name].js' }, module:{ rules:[ { test:/\.css$/, use:ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) } ] }, plugins:[ //独立通用模块 new webpack.optimize.CommonsChunkPlugin({ name : 'common', filename : 'js/base.js' }), //独立打包css new ExtractTextPlugin('css/[name].css'), //对html模板进行处理,生成对应的html,引入需要的资源模块 new HtmlWebpackPlugin({ template:'./src/view/index.html',//模板文件 filename:'view/login/index.html',//目标文件 chunks:['commom','login'],//对应加载的资源 inject:true,//资源加入到底部 hash:true//加入版本号 }) ] } module.exports= configs
第二步:webpack.config.js
{String} | HTML ファイルを生成します。ディレクトリ | |
---|---|---|
inject | ||
に基づいてテンプレート ファイルを指定できます。ページのどの部分に js リソースを挿入します。値は次のとおりです。 true 'head' ' body' false、true または 'body' を渡すと、すべての JavaScript リソースが body 要素の下部に配置されます。 'head' はスクリプトを head 要素に配置します | favicon | |
指定されたアイコンのパスを出力 HTML に追加します | hash | |
true の場合、Webpack にはすべてスクリプトが含まれますCSS ファイルには、一意のコンパイル ハッシュが追加されます。これはキャッシュのクリアに非常に便利です | chunks | |
インポートする必要があるリソースモジュールを入れてください | excludeChunks | |
一部のリソースモジュールは入れないでください | | 期待される目標: 私のプロジェクトは複数のエントリ ファイルを含むプロジェクトです。各エントリ ページに対応する js モジュールと css が導入されることを願っています |
webpack.config.js は次のように構成されています: | すると、パッケージ化の結果は次のようになります | 生成されるターゲット ファイル: |
HTML ファイルを処理する理由 | すべてのメソッドは dist フォルダーの下にパッケージ化されており、私たちの html は定義したフォルダーの下にあります。これらの dist フォルダー内の js を src 経由で 1 つずつ手動でインポートすると、少し信頼性が低くなります
const path = require('path');const webpack = require('webpack')const ExtractTextPlugin = require("extract-text-webpack-plugin");const HtmlWebpackPlugin = require('html-webpack-plugin');const configs = { entry:{ 'commom':['./src/page/common/index.js'], 'index':['./src/page/index/index.js'], 'login':['./src/page/login/index.js'] }, output:{ path:path.resolve(__dirname, 'dist'), filename:'js/[name].js' }, module:{ rules:[ { test:/\.css$/, use:ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) } ] }, plugins:[ //独立通用模块 new webpack.optimize.CommonsChunkPlugin({ name : 'common', filename : 'js/base.js' }), //独立打包css new ExtractTextPlugin('css/[name].css'), //对html模板进行处理,生成对应的html,引入需要的资源模块 new HtmlWebpackPlugin({ template:'./src/view/index.html',//模板文件 filename:'view/login/index.html',//目标文件 chunks:['commom','login'],//对应加载的资源 inject:true,//资源加入到底部 hash:true//加入版本号 }) ] } module.exports= configs🎜ステップ 2:
webpack.config.js
設定🎜🎜 HtmlWebpackPlugin の設定項目は次のとおりです: 🎜🎜🎜🎜 🎜名前🎜🎜タイプ🎜🎜説明🎜🎜🎜🎜🎜🎜title🎜🎜{String}🎜🎜生成されたHTMLドキュメントのタイトル🎜🎜🎜🎜filename🎜🎜{String}🎜🎜HTMLを生成するファイル。ディレクトリ 🎜🎜🎜🎜template🎜🎜{String}🎜🎜🎜🎜🎜🎜inject🎜🎜{Boolean|String}🎜🎜に基づいてテンプレート ファイルを指定できます。ページのどの部分に js リソースを挿入します。値は次のとおりです。 true 'head' ' body' false、true または 'body' を渡すと、すべての JavaScript リソースが body 要素の下部に配置されます。 'head' はスクリプトを head 要素に配置します 🎜🎜🎜🎜favicon🎜🎜{String}🎜🎜 指定されたアイコンのパスを出力 HTML に追加します🎜🎜🎜🎜hash🎜🎜{Boolean}🎜🎜 true の場合、Webpack にはすべてスクリプトが含まれますCSS ファイルには、一意のコンパイル ハッシュが追加されます。これはキャッシュのクリアに非常に便利です🎜🎜🎜🎜chunks🎜🎜{?}🎜🎜インポートする必要があるリソースモジュールを入れてください🎜🎜🎜🎜excludeChunks🎜🎜{?}🎜🎜一部のリソースモジュールは入れないでください🎜 🎜🎜🎜预期目标: 我的项目是一个多入口文件的项目,希望每一个入口页面引入对应的js模块和css
比如login页面引入login的js和css、index引入对应js和css
webpack.config.js
配置如下:
const path = require('path');const webpack = require('webpack')const ExtractTextPlugin = require("extract-text-webpack-plugin");const HtmlWebpackPlugin = require('html-webpack-plugin');const configs = { entry:{ 'commom':['./src/page/common/index.js'], 'index':['./src/page/index/index.js'], 'login':['./src/page/login/index.js'] }, output:{ path:path.resolve(__dirname, 'dist'), filename:'js/[name].js' }, module:{ rules:[ { test:/\.css$/, use:ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) } ] }, plugins:[ //独立通用模块 new webpack.optimize.CommonsChunkPlugin({ name : 'common', filename : 'js/base.js' }), //独立打包css new ExtractTextPlugin('css/[name].css'), //对html模板进行处理,生成对应的html,引入需要的资源模块 new HtmlWebpackPlugin({ template:'./src/view/index.html',//模板文件 filename:'view/login/index.html',//目标文件 chunks:['commom','login'],//对应加载的资源 inject:true,//资源加入到底部 hash:true//加入版本号 }) ] } module.exports= configs
然后打包结果如下
其中生成的目标文件:
相关推荐:
以上がHTMLファイルのWebpack処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Theroottaginanhtmldocumentis.itservesStop-levellementThateChationCothercontent、ProperDocumentsTurcuteRuctureAndBrowsingを保証します。

この記事では、HTMLタグは要素を定義するために使用される構文マーカーであり、要素はタグやコンテンツを含む完全なユニットであると説明しています。彼らは協力してWebPages.Characterカウントを構築するために協力します:159

この記事では、< head>の役割について説明します。および< body> HTMLのタグ、ユーザーエクスペリエンスへの影響、およびSEOの影響。適切な構造化により、ウェブサイトの機能と検索エンジンの最適化が強化されます。

この記事では、HTMLタグの違いについて説明します。、、、、、、、およびプレゼンテーションの使用とSEOとアクセシビリティへの影響に焦点を当てています。

記事では、UTF-8に焦点を当てたHTMLでのキャラクターエンコーディングの指定について説明します。主な問題:テキストの正しい表示を確保し、文字化けされたキャラクターの防止、SEOとアクセシビリティの強化。

この記事では、Webコンテンツの構築とスタイリングに使用されるさまざまなHTMLフォーマットタグについて説明し、テキストの外観に対する影響とアクセシビリティとSEOのセマンティックタグの重要性を強調しています。

この記事では、HTMLの「ID」属性と「クラス」属性の違いについて説明し、一意性、目的、CSS構文、および特異性に焦点を当てています。それらがWebページのスタイリングと機能にどのように影響するかを説明し、のベストプラクティスを提供する

この記事では、スタイリングとJavaScriptの操作の要素をグループ化するHTML「クラス」属性の役割を説明し、一意の「ID」属性とは対照的です。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

ホットトピック









