Webpackでマルチページ開発を実装する方法
この記事では主に webpack のマルチページ開発の実践方法を紹介します。編集者がそれを参考にさせていただきます。エディターをフォローして見てみましょう
前に書いてあります
Webpackは、js、css、ページ、写真、ビデオなどのさまざまなリソースをモジュール化できるモジュールローダーおよびパッケージ化ツールです。現在、単一ページの Webpack モデルがインターネット上で多数出回っていますが、複数ページの場合はどうなるのでしょうか?それほどではありませんが、現在は複数ページのフロントエンド モデルを提供しています。皆さんにも使っていただければ幸いです。
初めて webpack に触れたとき、webpack は webpack+react、webpack+vue などの単一ページのアプリケーションにのみ適していると思いました。私自身、webpack+vue を使ってプロジェクトを構築したり開発したりする中で、webpack の威力と利便性を実感しています。実際のプロジェクトのニーズに基づいて、webapck を使用して複数ページのサイトを構築できるかどうか疑問に思っています。そこで私は調査を開始し、最終的に比較的完全なソリューションを構築しました。
この記事では、実際のプロジェクトを例として、複数ページのプロジェクトでエンジニアリング構築に webpack を使用する方法を説明します。この記事は私自身の実際の経験を要約したものであるため、いくつかの解決策は最適ではなく、現在も検討および最適化されています。間違いや漏れがある場合は、ご指摘ください。
はじめに
このプロジェクトは主に webpack2.x に基づいて構築されており、補助ツールとして gulp が使用されています。フロントエンドはテンプレート エンジンとして art-template を使用します。1 つのページがテンプレート ファイルに対応し、インポートまたは Webpack によってこれらのモジュールが 1 つのファイルに自動的にマージされます。エントリーファイル。
フロントエンド開発環境のセットアップ
メインディレクトリ構造
├─dist #打包后生成的文件目录 └─src #开发目录 ├─components #通用组件 ├─static #静态资源目录 │ ├─css │ ├─img │ └─js │ ├─component #站点通用组件对应的js │ ├─lib #第三方js库 │ ├─services #各页面入口 │ └─util #通用工具js ├─template #html模板 └─views #页面 main.js #公共入口 gulpfile.js #gulp任务配置 package.json #项目依赖 webpack.config.js #webpack配置
Webpack構成
エントリーファイル
// 获取入口文件 var entries = (function() { var jsDir = path.resolve(__dirname, 'src/static/js/services'); var entryFiles = glob.sync(jsDir + '/*.js'); var map = {}; entryFiles.forEach(function(filePath) { var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')); map[filename] = filePath; }); return map; })();
このメソッドは、ファイル名からファイルの絶対パスへのマップを生成します(例:
)entry: { 'page-1': '/../webpack-multipage-demo/src/static/js/services/page-1.js' }
ホットアップデート
ホットアップデートは単純に使いにくいだけで、開発効率が大幅に向上します。
//服务器配置 var devServer = env === 'production' ? {} : { contentBase: path.resolve(__dirname), compress: true, historyApiFallback: true, hot: true, inline: true, host: 'localhost', port: 8080 };
さらに、新しい webpack.HotModuleReplacementPlugin() をプラグインに追加し、ホット モジュール交換を有効にしてホット アップデートを実現します。
HTML構成の生成
同じページ上のjsファイルがテンプレートファイルと同じ名前を持つことが合意され、最終的にはjsに基づいて同じ名前のhtmlファイルが生成されます。
var htmlPages = (function() { var artDir = path.resolve(__dirname, 'src/views'); var artFiles = glob.sync(artDir + '/*.art'); var array = []; artFiles.forEach(function(filePath) { var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')); array.push(new HtmlWebpackPlugin({ template: path.resolve(__dirname, 'src/template/index.html'), filename: filename + '.html', chunks: ['vendor', 'main', filename], chunksSortMode: function(chunk1, chunk2) { var order = ['vendor', 'main', filename]; var order1 = order.indexOf(chunk1.names[0]); var order2 = order.indexOf(chunk2.names[0]); return order1 - order2; }, minify: { removeComments: env === 'production' ? true : false, collapseWhitespace: env === 'production' ? true : false } })); }); return array; })();
共通モジュールをコンポーネントに抽出
複数のページで使用する必要がある一部のモジュールについては、共通コンポーネントとして抽出できます。コンポーネントの構成はページと同じで、.js ファイル、.art ファイル、および .css ファイルであり、HTML コンテンツは js ファイルでレンダリングされ、最終的には使用時に直接エクスポートできます。 。具体的な実践方法については、デモを参照してください
問題があります
新しいページを作成するたびに、webpackサービスを再起動する必要があります
Webフォントを圧縮する場合、フォントファイルを圧縮できません。 font-face を通じて導入されましたが、これより良い解決策は現在ありません
demo
この記事の理論に基づいたデモ、アドレス: webpack-multipage-demo
上記は私がコンパイルしたものです。皆さん、今後皆さんのお役に立つことを願っています。
関連記事:
jqueryを使用して左右のサイドバーのスケーリング効果を実現する方法
mongooseではオブジェクトの更新について詳しく紹介されています
以上がWebpackでマルチページ開発を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Vue は、インタラクティブで効率的な Web アプリケーションを迅速に構築するのに役立つ優れた JavaScript フレームワークです。 Vue3 は、多くの新機能が導入された Vue の最新バージョンです。 Webpack は現在最も人気のある JavaScript モジュール パッケージャーおよびビルド ツールの 1 つで、プロジェクト内のさまざまなリソースの管理に役立ちます。この記事では、Webpack を使用して Vue3 アプリケーションをパッケージ化してビルドする方法を紹介します。 1.Webpackをインストールする

相違点: 1. Webpack サーバーの起動速度は Vite より遅いですが、Vite は起動時にパッケージ化する必要がなく、モジュールの依存関係を解析してコンパイルする必要がないため、起動速度が非常に速くなります。 2. Vite ホット アップデートは webpack よりも高速です。Vite の HRM の観点から、特定のモジュールのコンテンツが変更された場合、ブラウザーにモジュールを再リクエストさせるだけです。 3. Vite は esbuild を使用して依存関係を事前構築しますが、webpack はノードに基づいています。 4. Vite のエコロジーは webpack ほど良くなく、ローダーとプラグインが十分に豊富ではありません。

Web 開発テクノロジーの継続的な発展に伴い、フロントエンドとバックエンドの分離とモジュール開発が広く普及する傾向になりました。 PHP は一般的に使用されるバックエンド言語です。モジュラー開発を行う場合、モジュールの管理とパッケージ化にいくつかのツールを使用する必要があります。Webpack は非常に使いやすいモジュラー パッケージング ツールです。この記事では、モジュール開発に PHP と webpack を使用する方法を紹介します。 1. モジュラー開発とは何ですか? モジュラー開発とは、プログラムを、それぞれが独自の機能を持つ独立したモジュールに分解することを指します。

設定方法: 1. import メソッドを使用して ES6 コードをパッケージ化された js コード ファイルに配置します; 2. npm ツールを使用して babel-loader ツールをインストールします。構文は「npm install -D babel-loader @babel/core」です。 @babel/preset-env"; 3. babel ツールの構成ファイル「.babelrc」を作成し、トランスコーディング ルールを設定します。 4. webpack.config.js ファイルでパッケージ化ルールを構成します。

最新の Web アプリケーションの複雑さが増すにつれて、優れたフロントエンド エンジニアリングとプラグイン システムを構築することがますます重要になっています。 Spring Boot と Webpack の人気により、これらはフロントエンド プロジェクトとプラグイン システムを構築するための完璧な組み合わせになりました。 SpringBoot は、最小限の構成要件で Java アプリケーションを作成する Java フレームワークです。自動構成などの多くの便利な機能を提供するため、開発者は Web アプリケーションをより迅速かつ簡単に構築および展開できます。 W

Webpack はモジュールのパッケージ化ツールです。さまざまな依存関係のモジュールを作成し、それらをすべて管理可能な出力ファイルにパッケージ化します。これは、単一ページ アプリケーション (今日の Web アプリケーションの事実上の標準) に特に役立ちます。

vue では、webpack は js、css、ピクチャ、json、その他のファイルをブラウザで使用できる適切な形式にパッケージ化できます。webpack では、js、css、ピクチャ、json、その他のファイル タイプをモジュールとして使用できます。 Webpack のさまざまなモジュール リソースは、パッケージ化して 1 つ以上のパッケージにマージでき、パッケージ化プロセス中に、画像の圧縮、scss から css への変換、ES6 構文から ES5 への変換などのリソースを処理できます。 HTMLで認識されるファイルタイプ。

vue の Webpack は、ノード パッケージ マネージャー「npm」または npm イメージ「cnpm」を使用してインストールされます。 Webpack は、最新の JavaScript アプリケーション用の静的モジュール パッケージ ツールです。node.js に基づいて開発されています。使用する場合は、node.js コンポーネントのサポートが必要です。npm または cnpm を使用してインストールする必要があります。構文は、「npm install webpack -」です。 g」または「cnpm install webpack -g」。
