ホームページ ウェブフロントエンド jsチュートリアル Webpackでマルチページ開発を実装する方法

Webpackでマルチページ開発を実装する方法

Jun 20, 2018 am 10:39 AM
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 ファイルでレンダリングされ、最終的には使用時に直接エクスポートできます。 。具体的な実践方法については、デモを参照してください

問題があります

  1. 新しいページを作成するたびに、webpackサービスを再起動する必要があります

  2. Webフォントを圧縮する場合、フォントファイルを圧縮できません。 font-face を通じて導入されましたが、これより良い解決策は現在ありません

demo

この記事の理論に基づいたデモ、アドレス: webpack-multipage-demo

上記は私がコンパイルしたものです。皆さん、今後皆さんのお役に立つことを願っています。

関連記事:

Vueで数値入力ボックスコンポーネントを実装する方法

jqueryを使用して左右のサイドバーのスケーリング効果を実現する方法

JS関数のsetTimeoutの詳細な紹介

mongooseではオブジェクトの更新について詳しく紹介されています

JavaScriptでAOPを実装する方法

以上がWebpackでマルチページ開発を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

VUE3 入門チュートリアル: Webpack を使用したパッケージ化とビルド VUE3 入門チュートリアル: Webpack を使用したパッケージ化とビルド Jun 15, 2023 pm 06:17 PM

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

vite と webpack の違いは何ですか vite と webpack の違いは何ですか Jan 11, 2023 pm 02:55 PM

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

モジュール開発に PHP と webpack を使用する方法 モジュール開発に PHP と webpack を使用する方法 May 11, 2023 pm 03:52 PM

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

Webpack はどのように es6 モジュールを es5 モジュールに変換しますか? Webpack はどのように es6 モジュールを es5 モジュールに変換しますか? Oct 18, 2022 pm 03:48 PM

設定方法: 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 ファイルでパッケージ化ルールを構成します。

Spring Boot と Webpack を使用してフロントエンド プロジェクトとプラグイン システムを構築する Spring Boot と Webpack を使用してフロントエンド プロジェクトとプラグイン システムを構築する Jun 22, 2023 am 09:13 AM

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

ウェブパックとは何ですか?仕組みの詳しい説明は? ウェブパックとは何ですか?仕組みの詳しい説明は? Oct 13, 2022 pm 07:36 PM

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

vwebpack パッケージに使用できるファイルは何ですか? vwebpack パッケージに使用できるファイルは何ですか? Dec 20, 2022 pm 07:44 PM

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

vueにwebpackをインストールする方法 vueにwebpackをインストールする方法 Jul 25, 2022 pm 03:27 PM

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

See all articles