Comment créer des applications multipages à l'aide de Webpack
这次给大家带来如何利用webpack构建多页面应用,利用webpack构建多页面应用的注意事项有哪些,下面就是实战案例,一起来看一下。
前言
之前使用 vue2.x + webpack3.x 撸了一个 vue 单页脚手架
vue 版 spa 脚手架
有兴趣的同学可以看下,内附详细注释,适合刚学习 webpack 的童鞋.
react 版 spa 脚手架
但在一些场景下,单页应用显然无法满足我们的需求,于是便有了
mulXc-cli
好了,废话不多说,进入正题!!!!
文件结构
├── build 构建服务和webpack配置 ├──── build.js 构建全量压缩包 (打包项目) ├──── setting.js 多页面入口配置 ├──── style.js 页面1对1抽取生成css文件 ├──── utils.js 工具类 ├──── webpack.base.conf.js webpack通用配置 ├──── webpack.dev.conf.js webpack开发环境配置 ├──── webpack.prod.conf.js webpack生产环境配置 ├── config webpack开发/生产环境部分配置 ├── dist 项目打包目录 ├── package.json 项目配置文件 ├── src 项目目录 ├──── common 多页面公用方法与css ├──── about about页面 ├──── home home页面
思路
多页面应用,顾名思义:就是有多个页面(废话!!!)
从 webpack 的角度来看:
1.多个入口(entry),每个页面对应一个入口,理解为 js 资源.
2.多个 html 实例,webpack 使用html-webpack-plugin 插件来生成 html 页面.
3.每个页面需要对应的 css 文件.webpack 使用 extract-text-webpack-plugin 抽取 css.
这样我们一个多页面应用该有的东西都具备了,go,开撸!!!
入口配置与 html 页面生成
通过以上文件结构,我们可以找到我们在 build/setting.js 进行了多页面入口配置与 html 页面生成。
setting.js
//node 文件操作模块 const fs = require('fs'); //node 路径模块 const path = require('path'); //使用node.js 的文件操作模块来获取src文件夹下的文件夹名称 ->[about,common,home] const entryFiles = fs.readdirSync(path.resolve(dirname, '../src')); //生成html文件插件 const HtmlWebpackPlugin = require('html-webpack-plugin'); //工具类提取_resolve方法 const { _resolve } = require('./utils'); //入口文件过滤common文件夹(因为common文件夹我们用来存放多页面之间公用的方法与css,所以不放入入口进行构建!) const rFiles = entryFiles.filter(v => v != 'common'); module.exports = { //构建webpack入口 entryList: () => { const entryList = {}; rFiles.map(v => { entryList[v] = _resolve(`../src/${v}/index.js`); }); return entryList; }, //src文件夹下的文件夹名称 ->[about,common,home] entryFiles: entryFiles, //使用html-webpack-plugin生成多个html页面.=>[home.html,about.html] pageList: () => { const pageList = []; rFiles.map(v => { pageList.push( new HtmlWebpackPlugin({ template: _resolve(`../src/${v}/index.html`), filename: _resolve(`../dist/${v}.html`), chunks: ['common', v], //压缩配置 minify: { //删除Html注释 removeComments: true, //去除空格 collapseWhitespace: true, //去除属性引号 removeAttributeQuotes: true }, chunksSortMode: 'dependency' }) ); }); return pageList; } };
webpack.base.conf.js
//引入setting.js 入口配置方法,与html生成配置 const { entryList, pageList } = require('./setting.js'); const baseConf = { entry: entryList(), plugins: [...pageList()] };
css 文件生成
通过以上文件结构,我们可以找到我们在 build/style.js 进行了 css 文件生成。
style.js
const path = require('path'); //抽取css文件插件 const ExtractTextPlugin = require('extract-text-webpack-plugin'); //引入入口配置 const { entryList, entryFiles } = require('./setting.js'); //多个ExtractTextPlugin实例 const plugins = []; entryFiles.map(v => { plugins.push( new ExtractTextPlugin({ filename: `css/${v}.[contenthash].css`, allChunks: false }) ); }); module.exports = { //使用正则匹配到每个页面对应style文件夹下的css/less文件,并配置loader来进行解析.从而实现html<->css 1对1 rulesList: () => { const rules = []; entryFiles.map((v, k) => { rules.push({ test: new RegExp(`src(\\\\|\/)${v}(\\\\|\/)style(\\\\|\/).*\.(css|less)$`), use: plugins[k].extract({ fallback: 'style-loader', use: ['css-loader', 'postcss-loader', 'less-loader'] }) }); }); return rules; }, //插件实例 stylePlugins: plugins };
webpack.prod.conf.js
//引入方法 const { rulesList, stylePlugins } = require('./style.js'); const prodConf = { module: { rules: [...rulesList()] }, plugins: [...stylePlugins] };
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Vous souhaitez copier une page dans Microsoft Word et conserver la mise en forme intacte ? C'est une bonne idée car la duplication de pages dans Word peut être une technique utile pour gagner du temps lorsque vous souhaitez créer plusieurs copies d'une mise en page ou d'un format de document spécifique. Ce guide vous guidera pas à pas à travers le processus de copie de pages dans Word, que vous créiez un modèle ou que vous copiez une page spécifique dans un document. Ces instructions simples sont conçues pour vous aider à recréer facilement votre page sans avoir à repartir de zéro. Pourquoi copier des pages dans Microsoft Word ? Il existe plusieurs raisons pour lesquelles copier des pages dans Word est très bénéfique : Lorsque vous souhaitez copier un document avec une mise en page ou un format spécifique. Contrairement à la recréation de la page entière à partir de zéro

L'actualisation des pages est très courante dans notre utilisation quotidienne du réseau. Lorsque nous visitons une page Web, nous rencontrons parfois certains problèmes, comme la page Web qui ne se charge pas ou ne s'affiche pas anormalement, etc. À ce stade, nous choisissons généralement d'actualiser la page pour résoudre le problème, alors comment actualiser la page rapidement ? Discutons des touches de raccourci pour l'actualisation de la page. La touche de raccourci d'actualisation de page est une méthode permettant d'actualiser rapidement la page Web actuelle via des opérations au clavier. Dans différents systèmes d'exploitation et navigateurs, les touches de raccourci pour l'actualisation de la page peuvent être différentes. Ci-dessous, nous utilisons le W commun

La veille est une nouvelle fonctionnalité de la mise à jour iOS 17 qui offre un moyen nouveau et amélioré d'accéder aux informations lorsque votre téléphone est rapidement inactif. Avec StandBy, vous pouvez facilement vérifier l'heure, afficher les événements à venir, parcourir votre calendrier, obtenir des mises à jour météo pour votre emplacement, et bien plus encore. Une fois activé, l’iPhone entrera intuitivement en mode veille lorsqu’il sera réglé en mode paysage pendant le chargement. Cette fonctionnalité est parfaite pour les points de chargement sans fil comme votre table de chevet, ou lorsque vous êtes loin de charger votre iPhone pendant les tâches quotidiennes. Il vous permet de parcourir différents widgets affichés en veille pour accéder à différents ensembles d'informations provenant de diverses applications. Cependant, vous souhaiterez peut-être modifier ces widgets ou même en supprimer certains en fonction de vos préférences et des informations dont vous avez fréquemment besoin. Alors plongeons-nous dans

Sous iOS, Apple vous permet de désactiver les pages individuelles de l'écran d'accueil de votre iPhone. Il est également possible de réorganiser l'ordre des pages de l'écran d'accueil et de supprimer des pages directement au lieu de simplement les désactiver. Voici comment cela fonctionne. Comment réorganiser les pages de l'écran d'accueil Touchez et maintenez Espace sur l'écran d'accueil pour passer en mode instabilité. Appuyez sur la rangée de points qui représentent les pages de l'écran d'accueil. Dans la grille de l'écran d'accueil qui apparaît, touchez et faites glisser une page pour la réorganiser par rapport aux autres pages. D'autres bougent en réponse à votre déplacement. Lorsque vous êtes satisfait de votre nouvel arrangement, appuyez sur « Terminé » dans le coin supérieur droit de l'écran, puis appuyez à nouveau sur « Terminé » pour quitter le mode de tramage. Comment désactiver ou supprimer des pages de l'écran d'accueil Touchez et maintenez Espace sur l'écran d'accueil pour passer en mode tramage. Appuyez pour représenter l'écran d'accueil

Titre : Méthode d'implémentation du saut de page en 3 secondes : Guide de programmation PHP Dans le développement web, le saut de page est une opération courante. Généralement, nous utilisons des balises méta dans les méthodes HTML ou JavaScript pour accéder aux pages. Cependant, dans certains cas précis, nous devons effectuer des sauts de page côté serveur. Cet article expliquera comment utiliser la programmation PHP pour implémenter une fonction qui accède automatiquement à une page spécifiée dans les 3 secondes, et donnera également des exemples de code spécifiques. Le principe de base du saut de page en utilisant PHP PHP est une sorte de.

La validation du formulaire est un maillon très important dans le développement d'applications Web. Elle permet de vérifier la validité des données avant de soumettre les données du formulaire afin d'éviter les failles de sécurité et les erreurs de données dans l'application. La validation de formulaire pour les applications Web peut être facilement implémentée à l'aide de Golang. Cet article explique comment utiliser Golang pour implémenter la validation de formulaire pour les applications Web. 1. Éléments de base de la validation de formulaire Avant de présenter comment implémenter la validation de formulaire, nous devons savoir quels sont les éléments de base de la validation de formulaire. Éléments de formulaire : les éléments de formulaire sont

"Comment gérer l'échec des pages Laravel à afficher correctement les CSS, des exemples de code spécifiques sont requis" Lorsque vous utilisez le framework Laravel pour développer des applications Web, vous rencontrerez parfois le problème que la page ne peut pas afficher correctement les styles CSS, ce qui peut provoquer le page pour afficher des styles anormaux. Affecte l’expérience utilisateur. Cet article présentera quelques méthodes pour gérer l'échec des pages Laravel à afficher correctement le CSS et fournira des exemples de code spécifiques pour aider les développeurs à résoudre ce problème courant. 1. Vérifiez le chemin du fichier. Vérifiez d’abord le chemin du fichier CSS.

Les normes Web sont un ensemble de spécifications et de directives développées par le W3C et d'autres organisations associées. Elles incluent la normalisation du HTML, CSS, JavaScript, DOM, l'accessibilité du Web et l'optimisation des performances. En suivant ces normes, la compatibilité des pages peut être améliorée. , maintenabilité et performances. L'objectif des normes Web est de permettre au contenu Web d'être affiché et d'interagir de manière cohérente sur différentes plates-formes, navigateurs et appareils, offrant ainsi une meilleure expérience utilisateur et une meilleure efficacité de développement.
