iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >webpack3.X中如何实现多页面打包
  • 654
分享到

webpack3.X中如何实现多页面打包

2024-04-02 19:04:59 654人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关webpack3.X中如何实现多页面打包,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。单页面打包我们知道要打包单页面的方法,很简单,配置入口,

这篇文章将为大家详细讲解有关webpack3.X中如何实现多页面打包,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

单页面打包

我们知道要打包单页面的方法,很简单,配置入口,和html插件

const HtmlWEBpackPlugin = require('html-webpack-plugin');

const config = {
 entry:{
  index:'./src/index.js'
 },
 output:{
  path: path.join(__dirname, 'dist'),
  filename: 'js/index.js'
 }
 ...
 plugins:[
  new HtmlWebpackPlugin({
   filename: 'index.html',
   template: './src/index.html',
   hash: true,
   minify: {
    removeAttributeQuotes:true,
    removeComments: true,
    collapseWhitespace: true,
    removeScriptTypeAttributes:true,
    removeStyleLinkTypeAttributes:true
   }
  })
 ]
}

上面的配置就是打包一个单页面的代码,具体配置项的意思请参考HTMLWebpackPlugin;

如何打包多页面

在学了webpack之后,我的感受是我会配置webpack了,也能运行了,但是学习的过程中都是单页面的,那么多页是如何打包的呢?其实多页面的打包和单页面的打包的原理是一样的,只是多配置几个对应的入口,和出口,以及HtmlWebpackPlugin对象;当然你完全可以像下面这样:

const config = {
 entry:{
  index:'./src/index.js',
  info:'./src/index.js'
 },
 output:{
  path: path.join(__dirname, 'dist'),
  filename: 'js/[name].js'
 }
 ...
 plugins:[
  new HtmlWebpackPlugin({
   filename: 'index.html',
   template: './src/index.html',
   chunks:['index'],
   hash: true,
   minify: {
    removeAttributeQuotes:true,
    removeComments: true,
    collapseWhitespace: true,
    removeScriptTypeAttributes:true,
    removeStyleLinkTypeAttributes:true
   }
  }),
  new HtmlWebpackPlugin({
   filename: 'info.html',
   template: './src/info.html',
   hash: true,
   chunks:['info'],
   minify: {
    removeAttributeQuotes:true,
    removeComments: true,
    collapseWhitespace: true,
    removeScriptTypeAttributes:true,
    removeStyleLinkTypeAttributes:true
   }
  })
 ]
}

细心的你肯定发现我改变了几个地方,一是,把output.filename的‘js/index.js'变成了‘js/[name].js',这是因为我们是多页面,每个页面对应相应的js这样方便管理,二是,在HtmlWebpackPlugin对象中添加了chunks这个属性,chunk属性是让你选择对应的js模块;

上面这种写法当然是没有问题,这是只有两个页面无所谓,那么有十个甚至更多呢,我们一直做着重复的事,这不是我们程序员的风格,我们就是为了能够偷懒才做程序员的不是吗?(当然还有高工资(#^.^#)),接下来我们来抽离这些重复的事;

首先,我们通过node的glob对象,来获取我们存在的html或js;


function getView(globPath,flag){
 let files = glob.sync(globPath);

 let entries = {},
 entry, dirname, basename, pathname, extname;

 files.forEach(item => {
  entry = item;
  dirname = path.dirname(entry);//当前目录
  extname = path.extname(entry);//后缀
  basename = path.basename(entry, extname);//文件名
  pathname = path.join(dirname, basename);//文件路径
  if (extname === '.html') {
   entries[pathname] = './' + entry;
  } else if (extname === '.js') {
   entries[basename] = entry;
  }
 });

 return entries;
}

既然,我们已经有了getView()函数,可以获取html和js文件,那么我们就可以确定有多少个入口,和多少个页面;
let entriesObj = getView('./src/js/*.js');

let config = {
 entry:entriesObj,
 ...
}

上面我们就配置好了入口,不需要我们手动添加了,有多少js就有多少入口;

let pages = Object.keys(getView('./src/*html'));

pages.forEach(pathname => {
 let htmlname = pathname.split('src\\')[1];
 let conf = {
  filename: `${htmlname}.html`,
  template: `${pathname}.html`,
  hash: true,
  chunks:[htmlname],
  minify: {
   removeAttributeQuotes:true,
   removeComments: true,
   collapseWhitespace: true,
   removeScriptTypeAttributes:true,
   removeStyleLinkTypeAttributes:true
  }
 }

 config.plugins.push(new HtmlWebpackPlugin(conf));
});

最后,我们获取HTML页面,和添加对应页面的HTMLWebpackPlugin对象;

关于“webpack3.X中如何实现多页面打包”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: webpack3.X中如何实现多页面打包

本文链接: https://www.lsjlt.com/news/78395.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • webpack3.X中如何实现多页面打包
    这篇文章将为大家详细讲解有关webpack3.X中如何实现多页面打包,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。单页面打包我们知道要打包单页面的方法,很简单,配置入口,...
    99+
    2022-10-19
  • Vue如何实现多页面配置以及打包方式
    目录为什么会用多页面如何在vue.config.js配置多页面信息目录(四个页面)配置打包相关配置多页面相关总结为什么会用多页面 在开发时,对于同一类型的多网站,多页面大大节省开发时...
    99+
    2022-11-13
    Vue多页面配置 Vue打包 Vue配置页面
  • Webpack实现多页面打包的方法步骤
    目录1. 多页面应用(MPA)概念2. 多页面打包基本思路3. 多页面打包通用方案4. 多页面打包实现1. 多页面应用(MPA)概念 单页面在开发时会把所有的业务放在一个大的入口里面...
    99+
    2023-01-09
    Webpack 多页面打包 webpack打包多页面
  • rollup3.x+vue2打包组件如何实现
    今天小编给大家分享一下rollup3.x+vue2打包组件如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。包的依赖关系...
    99+
    2023-07-05
  • webpack4如何打包vue前端多页面项目
    这篇文章主要介绍webpack4如何打包vue前端多页面项目,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.用法项目结构如下:project  |- bulid...
    99+
    2022-10-19
  • webpack多入口文件页面如何打包配置
    这篇文章主要介绍webpack多入口文件页面如何打包配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!手动配置单页应用程序和多页应用程序的 webpack配置文件其实绝大部分都还是相...
    99+
    2022-10-19
  • Dreamweaver如何实现一个网页内包含多个页面的效果
    这篇文章主要介绍Dreamweaver如何实现一个网页内包含多个页面的效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方法如下打开Dreamweaver,新建一个网页。点击布局中的框架按钮,选择要实现的框架类型。在...
    99+
    2023-06-08
  • JS如何实现页面打印功能
    小编给大家分享一下JS如何实现页面打印功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打印整个页面示例1.可直接在按钮添加调用...
    99+
    2022-10-19
  • webpack如何实现多页面配置
    这篇文章主要介绍了webpack如何实现多页面配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。定目录结构首先我只需要开发环境(包含自动更新...
    99+
    2022-10-19
  • 打包多个NumPy数组,Python中该如何实现?
    在Python中使用NumPy进行科学计算时,我们通常会处理多个数组。当需要将多个NumPy数组打包成一个数组时,我们可以使用NumPy库中的np.stack()函数。本文将详细介绍如何使用np.stack()函数打包多个NumPy数组。 ...
    99+
    2023-08-04
    numy 索引 打包
  • vue中的vue-print-nb如何实现页面打印
    目录安装在main.js中全局引入页面中使用安装 npm install vue-print-nb --save 在main.js中全局引入 import Print from 'v...
    99+
    2022-11-13
  • android中如何实现二次打包完成apk多渠道打包的方法
    这篇文章将为大家详细讲解有关android中如何实现二次打包完成apk多渠道打包的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。此打包方式一个渠道包只需要5秒左右,可实现快速打渠道包对于为了在asse...
    99+
    2023-05-30
    android
  • 如何在 Go 和 Laravel 中打包并重定向页面?
    在现代 Web 应用程序中,重定向是一个非常常见的操作。重定向是指当用户访问某个 URL 时,服务器将用户重定向到另一个 URL。在本文中,我们将介绍如何在 Go 和 Laravel 中打包并重定向页面。 在 Go 中打包并重定向页面 Go...
    99+
    2023-08-03
    laravel 打包 重定向
  • C#如何实现多文件打包压缩
    C#如何实现多文件打包压缩,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。最近项目需要实现多文件打包的功能,尝试了一些方法,最后发现使用ICSharpCode.S...
    99+
    2023-06-22
  • Vue打包后页面出现空白的问题如何解决
    这篇文章主要介绍“Vue打包后页面出现空白的问题如何解决”,在日常操作中,相信很多人在Vue打包后页面出现空白的问题如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue打包后页面出现空白的问题如何解决...
    99+
    2023-06-20
  • php如何实现Web页面的打印功能
    这篇文章主要讲解了“php如何实现Web页面的打印功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现Web页面的打印功能”吧!下面,我们先简单介绍一下能够实现打印功能的基本知识...
    99+
    2023-07-05
  • ASP打包技能有多重要?如何在面试中展现您的path?
    ASP(Active Server Pages)是一种由微软开发的服务器端脚本语言,用于构建动态网页和Web应用程序。在Web开发中,ASP打包技能是非常重要的。本文将深入探讨ASP打包技能的重要性,并提供一些在面试中展现自己的技巧。 一...
    99+
    2023-10-17
    打包 面试 path
  • vue-router如何实现跳转时打开新页面
    小编给大家分享一下vue-router如何实现跳转时打开新页面,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、<vue-...
    99+
    2022-10-19
  • react如何实现多个页面之间跳转
    本文小编为大家详细介绍“react如何实现多个页面之间跳转”,内容详细,步骤清晰,细节处理妥当,希望这篇“react如何实现多个页面之间跳转”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。react多个页面之间跳转...
    99+
    2023-07-04
  • 如何实现基于react+webpack的多页面应用
    这篇文章给大家分享的是有关如何实现基于react+webpack的多页面应用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。项目目录介绍:打包后文件目录:打包成cli如果你厌烦了新...
    99+
    2022-10-19
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作