iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Webpack实现多页面打包的方法步骤
  • 498
分享到

Webpack实现多页面打包的方法步骤

Webpack多页面打包webpack打包多页面 2023-01-09 12:01:47 498人浏览 八月长安
摘要

目录1. 多页面应用(MPA)概念2. 多页面打包基本思路3. 多页面打包通用方案4. 多页面打包实现1. 多页面应用(MPA)概念 单页面在开发时会把所有的业务放在一个大的入口里面

1. 多页面应用(MPA)概念

单页面在开发时会把所有的业务放在一个大的入口里面去,不同的子业务还是同一个URL地址,只不过后面的hash会有所不同。

多页面相对于单页面的区别在于,项目发布上线以后,有多个入口文件,每一次页面跳转的时候,后台服务器都会返回一个新的html文档,这种类型的网站也就是多页面网站,也叫多页应用。

多页面有什么优势呢?主要有以下两点:

1. 多个页面之间是解耦的,利于维护;

2. 多页面对SEO更加友好;

2. 多页面打包基本思路

多页面打包的基本思路在于,每个页面对应一个entry,每个页面对应一个html-webpack-plugin,但这种方式每次在新增或删除页面时需要修改WEBpack配置,相当麻烦。

3. 多页面打包通用方案

1. 多个页面的文件名统一取名index,通过不同的文件夹来区分;

2. 动态获取 entry 和设置 html-webpack-plugin 数量;

4. 多页面打包实现

4.1. 安装插件;

npm i glob -D

4.2. 配置Webpack文件;

'use strict';
// 引入插件
const glob = require('glob');
const path = require('path');
const webpack = require('webpack');
 
// 页面打包插件
const HtmlWebpackPlugin = require('html-webpack-plugin');
// 自动清理插件
const CleanWebpackPlugin = require('clean-webpack-plugin');
// 优化控制台输出
const FriendlyErrorsWebpackPlugin = require('friendly-errors-webpack-plugin');
 
// 动态计算多页面打包
const setMPA = () => {
    const entry = {};
    const htmlWebpackPlugins = [];
    // 获取本地按规则修改好的文件
    const entryFiles = glob.sync(path.join(__dirname, './src/*/index.js'));
 
    Object.keys(entryFiles).map((index) => {
 
        const entryFile = entryFiles[index];
 
        // 'my-project/src/index/index.js'
 
        const match = entryFile.match(/src\/(.*)\/index\.js/);
        // 获取页面文件名
        const pageName = match && match[1];
 
        entry[pageName] = entryFile;
        // 根据本地定义的页面文件数量来定义htmlWebpackPlugin
        htmlWebpackPlugins.push(
            new HtmlWebpackPlugin({
                template: path.join(__dirname, `src/${pageName}/index.html`),
                filename: `${pageName}.html`,
                chunks: [pageName],
                inject: true,
                minify: {
                    HTML5: true,
                    collapseWhitespace: true,
                    preserveLineBreaks: false,
                    minifyCSS: true,
                    minifyJS: true,
                    removeComments: false
                }
            })
        );
    });
 
    return {
        entry,
        htmlWebpackPlugins
    }
}
 
const { entry, htmlWebpackPlugins } = setMPA();
 
module.exports = {
    // 入口文件
    entry: entry,
    // 输出文件
    output: {
        path: path.join(__dirname, 'dist'),
        filename: '[name].js'
    },
    // 开发模式
    mode: 'development',
    module: {
        rules: [
            {
                test: /.js$/,
                use: 'babel-loader'
            },
            {
                test: /.css$/,
                use: [
                    'style-loader',
                    'css-loader'
                ]
            },
            {
                test: /.less$/,
                use: [
                    'style-loader',
                    'css-loader',
                    'less-loader'
                ]
            },
            {
                test: /.(png|jpg|gif|jpeg)$/,
                use: [
                    {
                        loader: 'url-loader',
                        options: {
                            limit: 10240
                        }
                    }
                ]
            },
            {
                test: /.(woff|woff2|eot|ttf|otf)$/,
                use: 'file-loader'
            }
        ]
    },
    plugins: [
        // 热更新插件
        new webpack.HotModuleReplacementPlugin(),
        // 自动清理插件
        new CleanWebpackPlugin(),
        // 简化打包控制台输出
        new FriendlyErrorsWebpackPlugin()
 
    ].concat(htmlWebpackPlugins),
 
    // 热更新相关配置
    devServer: {
        // 基本目录
        contentBase: './dist',
        // 热更新
        hot: true,
        // 只输出报错
        stats: 'errors-only'
    },
    devtool: 'cheap-source-map'
};

到此这篇关于Webpack实现多页面打包的方法步骤的文章就介绍到这了,更多相关Webpack 多页面打包内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Webpack实现多页面打包的方法步骤

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

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

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

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

下载Word文档
猜你喜欢
  • Webpack实现多页面打包的方法步骤
    目录1. 多页面应用(MPA)概念2. 多页面打包基本思路3. 多页面打包通用方案4. 多页面打包实现1. 多页面应用(MPA)概念 单页面在开发时会把所有的业务放在一个大的入口里面...
    99+
    2023-01-09
    Webpack 多页面打包 webpack打包多页面
  • 使用Webpack构建多页面程序的实现步骤
    使用webpack搭建单页面程序十分常见,但在实际开发中我们可能还会有开发多页面程序的需求,因此我研究了一下如何使用webpack搭建多页面程序。 原理 将每个页面所在的文件夹都看...
    99+
    2024-04-02
  • webpack多入口文件页面如何打包配置
    这篇文章主要介绍webpack多入口文件页面如何打包配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!手动配置单页应用程序和多页应用程序的 webpack配置文件其实绝大部分都还是相...
    99+
    2024-04-02
  • Vue-CLI多页分目录打包的步骤记录
    页面目录结构 注意需要将默认的 html 模板文件 public/index.html  移动到根目录下。 安装依赖 npm i --save-dev cross-en...
    99+
    2024-04-02
  • webpack如何实现多页面配置
    这篇文章主要介绍了webpack如何实现多页面配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。定目录结构首先我只需要开发环境(包含自动更新...
    99+
    2024-04-02
  • uniapp项目打包为桌面应用的方法步骤
    安装electron cnpm install electron -g 安装electron-packager cnpm install electron-packager...
    99+
    2024-04-02
  • Qt项目打包的实现步骤
    目录准备项目文件用InstallShield解决打包后自动启动cmd窗口的问题准备项目文件 本质上就是把依赖的动态库放到你指定的文件夹里面去;这样在其他电脑上运行时,就不需要再安装q...
    99+
    2024-04-02
  • Maven打包上云的实现步骤
    目录1 修改配置文件2 本地打包运行2.1 打包2.2 运行jar包3 上云(飞天)1 修改配置文件 首先修改pom配置文件(添加maven打jar包插件),添加如下代码: <...
    99+
    2024-04-02
  • webpack3.X中如何实现多页面打包
    这篇文章将为大家详细讲解有关webpack3.X中如何实现多页面打包,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。单页面打包我们知道要打包单页面的方法,很简单,配置入口,...
    99+
    2024-04-02
  • Webpack打包时将文件内联方法实现
    目录1. 安装插件2. 拆分需要内联的HTML片段3. 利用插件内联HTML片段与JS插件在编写前端代码时,有些文件作为单独的文件引用会更便于维护,但是有些文件却必须要内联。 文件内...
    99+
    2023-01-09
    Webpack打包内联 Webpack 文件内联
  • electron打包vue项目的方法步骤
    目录创建项目添加electron-builderelectron下载失败窗体运行打包exe白屏创建项目 点击这里 添加electron-builder 1、在项目目录下运行命令:vu...
    99+
    2024-04-02
  • Webpack打包ES6和CommonJs的方法
    今天小编给大家分享一下Webpack打包ES6和CommonJs的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。最开始我...
    99+
    2023-06-17
  • Vue如何实现多页面配置以及打包方式
    目录为什么会用多页面如何在vue.config.js配置多页面信息目录(四个页面)配置打包相关配置多页面相关总结为什么会用多页面 在开发时,对于同一类型的多网站,多页面大大节省开发时...
    99+
    2022-11-13
    Vue多页面配置 Vue打包 Vue配置页面
  • pyinstaller打包django项目的实现步骤
    安装pyinstaller pip install pyinstaller 制作项目的.spec文件   进入django项目所在路径,运行 pyi-makes...
    99+
    2024-04-02
  • webpack打包后直接访问页面图片路径错误的解决方法
    这篇文章主要为大家展示了“webpack打包后直接访问页面图片路径错误的解决方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“we...
    99+
    2024-04-02
  • 如何实现基于react+webpack的多页面应用
    这篇文章给大家分享的是有关如何实现基于react+webpack的多页面应用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。项目目录介绍:打包后文件目录:打包成cli如果你厌烦了新...
    99+
    2024-04-02
  • vue cli3 实现分环境打包的步骤
    用cli3搭建的vue项目号称零配置文件,为了方便打包(不用手动来回改不同环境进行打包)那么我们在需要打包的时候分不同环境打包怎么办呢 1.在根目录下创建三个配置文件,如下图 这里...
    99+
    2024-04-02
  • 使用eclipse打包Maven项目的实现步骤
    Maven中最重要的是POM文件,其打包也是基于该文件的,在POM文件中配置插件,可以实现将Maven项目打包成可执行jar包 依赖如下: <build> <p...
    99+
    2024-04-02
  • webpack之基础打包优化的实现
    目录前言优化loader压缩代码gzip压缩抽离公共依赖包最后前言 webpack至今已经发展了5个版本,如果你还不会webpack,那么赶紧学习起来吧。webpack是web前端开...
    99+
    2024-04-02
  • 使用webpack打包ts代码的实现
    目录使用 webpack 打包生成 package.json安装 cnpm安装 webpack 相关编写 webpack 配置文件创建 tsconfig.json修改 package...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作