Maison interface Web js tutoriel Comment implémenter le développement multipage dans webpack

Comment implémenter le développement multipage dans webpack

Jun 20, 2018 am 10:39 AM
webpack

Cet article présente principalement la pratique du développement multipage de webpack. L'éditeur pense que c'est plutôt bien, je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.

Écrivez-le devant

Webpack est un chargeur de modules et un outil d'empaquetage qui peut charger du js, du css, des pages, des images, Diverses ressources telles que les vidéos sont modularisées. De nos jours, de nombreux modèles de webpacks d’une seule page circulent sur Internet, mais qu’en est-il de plusieurs pages ? Moins, je propose désormais un modèle front-end multipage. J'espère que tout le monde pourra l'utiliser.

Lorsque je suis entré en contact avec webpack pour la première fois, je pensais que webpack ne convenait qu'aux applications d'une seule page, telles que webpack+react, webpack+vue. Je ressens moi-même la puissance et la commodité de webpack dans le processus de création de projets et de développement à l'aide de webpack+vue. En fonction des besoins réels du projet, je me demande si des sites multipages peuvent également être créés à l'aide de webapck ? J'ai donc commencé quelques explorations et finalement construit une solution relativement complète.

Cet article prend comme exemple un projet réel pour décrire comment utiliser Webpack pour la construction technique dans des projets de plusieurs pages. Cet article est un résumé de ma propre expérience pratique, donc certaines solutions ne sont pas optimales et sont toujours en cours d'exploration et d'optimisation. S'il y a des erreurs ou des omissions, veuillez les signaler.

Introduction

Ce projet est principalement construit sur la base de webpack2.x, avec gulp comme outil auxiliaire. Le front-end utilise art-template comme moteur de modèle. Une page correspond à un fichier de modèle et d'autres modules peuvent être introduits dans le fichier d'entrée via l'importation ou Webpack fusionnera automatiquement ces modules en un seul fichier avec le. fichier d'entrée.

Configuration de l'environnement de développement front-end

Structure du répertoire principal

├─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配置
Copier après la connexion

Configuration du webpack

Fichier d'entrée

// 获取入口文件
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;
})();
Copier après la connexion

Cette méthode générera une carte du nom du fichier au chemin absolu du fichier, tel que

entry: {
  'page-1': '/../webpack-multipage-demo/src/static/js/services/page-1.js'
}
Copier après la connexion

Mise à jour à chaud

La mise à jour à chaud est tout simplement inutile. Elle est si facile à utiliser et améliore considérablement l'efficacité du développement.

//服务器配置
var devServer = env === 'production' ? {} : {
  contentBase: path.resolve(__dirname),
  compress: true,
  historyApiFallback: true,
  hot: true,
  inline: true,
  host: 'localhost', 
  port: 8080
};
Copier après la connexion

De plus, ajoutez le nouveau webpack.HotModuleReplacementPlugin() au plugin et activez le remplacement du module à chaud pour obtenir des mises à jour à chaud.

Générer la configuration html

Il est convenu que le fichier js de la même page porte le même nom que le fichier modèle, et enfin un fichier html du même nom est généré sur la base du js.

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;
})();
Copier après la connexion

Les modules communs sont extraits en composants

Pour certains modules qui doivent être utilisés dans plusieurs pages, ils peuvent être extraits en tant que composants communs. La composition du composant est la même que celle de la page, un fichier .js, un fichier .art et un fichier .css. Le contenu html est rendu dans le fichier js et enfin exporté. Vous pouvez l'exiger directement lors de son utilisation. . Pour des pratiques spécifiques, veuillez vous référer à la démo

Il y a des problèmes

  1. Chaque fois qu'une nouvelle page est créée, le service webpack doit être redémarré

  2. Les fichiers de polices ne peuvent pas être compressés. Il n'existe actuellement aucune bonne solution pour compresser les polices Web introduites via font-face

démo.

Une démo basée sur la théorie de cet article, adresse : webpack-multipage-demo

Ce qui précède est ce que j'ai compilé pour tout le monde, j'espère qu'il sera utile à tout le monde. l'avenir.

Articles connexes :

Comment implémenter le composant de zone de saisie numérique dans Vue

Comment utiliser jquery pour obtenir la gauche et la droite effet de mise à l'échelle de la barre latérale

Introduction détaillée à setTimeout dans la fonction JS

Introduction détaillée à la mise à jour des objets dans mangouste

Comment implémenter AOP en JavaScript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Tutoriel de démarrage VUE3 : empaquetage et création avec Webpack Tutoriel de démarrage VUE3 : empaquetage et création avec Webpack Jun 15, 2023 pm 06:17 PM

Vue est un excellent framework JavaScript qui peut nous aider à créer rapidement des applications Web interactives et efficaces. Vue3 est la dernière version de Vue, qui introduit de nombreuses nouvelles fonctionnalités et fonctionnalités. Webpack est actuellement l'un des packagers de modules et outils de construction JavaScript les plus populaires, qui peut nous aider à gérer diverses ressources dans nos projets. Cet article explique comment utiliser Webpack pour empaqueter et créer des applications Vue3. 1. Installez Webpack

Quelle est la différence entre vite et webpack Quelle est la différence entre vite et webpack Jan 11, 2023 pm 02:55 PM

Différences : 1. La vitesse de démarrage du serveur webpack est plus lente que celle de Vite ; car Vite n'a pas besoin d'être empaqueté au démarrage, il n'est pas nécessaire d'analyser les dépendances du module et de compiler, donc la vitesse de démarrage est très rapide. 2. La mise à jour à chaud de Vite est plus rapide que le webpack ; en termes de HRM de Vite, lorsque le contenu d'un certain module change, laissez simplement le navigateur demander à nouveau le module. 3. Vite utilise esbuild pour pré-construire les dépendances, tandis que webpack est basé sur le nœud. 4. L'écologie de Vite n'est pas aussi bonne que celle du webpack, et les chargeurs et plug-ins ne sont pas assez riches.

Comment utiliser PHP et Webpack pour le développement modulaire Comment utiliser PHP et Webpack pour le développement modulaire May 11, 2023 pm 03:52 PM

Avec le développement continu de la technologie de développement Web, la séparation front-end et back-end et le développement modulaire sont devenus une tendance répandue. PHP est un langage back-end couramment utilisé. Lors du développement modulaire, nous devons utiliser certains outils pour gérer et empaqueter les modules. Webpack est un outil d'empaquetage modulaire très facile à utiliser. Cet article explique comment utiliser PHP et Webpack pour le développement modulaire. 1. Qu'est-ce que le développement modulaire ? Le développement modulaire fait référence à la décomposition d'un programme en différents modules indépendants. Chaque module a sa propre fonction.

Comment Webpack convertit-il le module es6 en es5 ? Comment Webpack convertit-il le module es6 en es5 ? Oct 18, 2022 pm 03:48 PM

Méthode de configuration : 1. Utilisez la méthode d'importation pour placer le code ES6 dans le fichier de code js emballé ; 2. Utilisez l'outil npm pour installer l'outil babel-loader, la syntaxe est "npm install -D babel-loader @babel/core @babel/preset- env"; 3. Créez le fichier de configuration ".babelrc" de l'outil babel et définissez les règles de transcodage ; 4. Configurez les règles de packaging dans le fichier webpack.config.js.

Utilisez Spring Boot et Webpack pour créer des projets frontaux et des systèmes de plug-ins Utilisez Spring Boot et Webpack pour créer des projets frontaux et des systèmes de plug-ins Jun 22, 2023 am 09:13 AM

Alors que la complexité des applications Web modernes continue d’augmenter, la création d’excellents systèmes d’ingénierie frontale et de plug-ins devient de plus en plus importante. Avec la popularité de Spring Boot et Webpack, ils sont devenus une combinaison parfaite pour créer des projets frontaux et des systèmes de plug-ins. SpringBoot est un framework Java qui crée des applications Java avec des exigences de configuration minimales. Il fournit de nombreuses fonctionnalités utiles, telles que la configuration automatique, afin que les développeurs puissent créer et déployer des applications Web plus rapidement et plus facilement. W

Quels fichiers le package Vue Webpack peut-il contenir ? Quels fichiers le package Vue Webpack peut-il contenir ? Dec 20, 2022 pm 07:44 PM

En vue, webpack peut regrouper des fichiers js, css, images, json et autres dans des formats appropriés pour une utilisation par le navigateur. Dans webpack, js, css, images, json et d'autres types de fichiers peuvent être utilisés comme modules. Diverses ressources de module dans webpack peuvent être regroupées et fusionnées en un ou plusieurs packages, et pendant le processus de packaging, les ressources peuvent être traitées, comme la compression d'images, la conversion de scss en css, la conversion de la syntaxe ES6 en ES5, etc., qui peuvent être reconnu par le type de fichier HTML.

Qu'est-ce que Webpack ? Explication détaillée de son fonctionnement ? Qu'est-ce que Webpack ? Explication détaillée de son fonctionnement ? Oct 13, 2022 pm 07:36 PM

Webpack est un outil de packaging de modules. Il crée des modules pour différentes dépendances et les regroupe tous dans des fichiers de sortie gérables. Ceci est particulièrement utile pour les applications d'une seule page (le standard de facto pour les applications Web aujourd'hui).

Comment installer Webpack dans vue Comment installer Webpack dans vue Jul 25, 2022 pm 03:27 PM

Webpack dans vue est installé à l'aide du gestionnaire de packages de nœuds "npm" ou de l'image npm "cnpm". Webpack est un outil d'empaquetage de modules statiques pour les applications JavaScript modernes. Il est développé sur la base de node.js. Il nécessite la prise en charge du composant node.js lors de son utilisation. Il doit être installé à l'aide de npm ou cnpm. g" ou "cnpm install webpack -g".

See all articles