分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

[转] vue&webpack多页面配置

发布时间:2023-09-06 02:23责任编辑:沈小雨关键词:配置webpack

前言

最近由于项目需求,选择使用vue框架,webpack打包直接使用的vue-cli,因为需要多页面而vue-cli只有单页面,所以就决定修改vue-cli的配置文件来满足开发需求。

html-webpack-plugin

实现需求需要用到这个插件, 具体信息请看这里

对于多页面入口我们需要在插件数组中多次声明该插件
To generate more than one HTML file, declare the plugin more than once in your plugins array

对于正常的开发需求我们需要配置该插件的信息(这里只介绍一些基本的信息,读者可根据自身情况扩展)

title: 文件标题信息(对于多个文件使用同一个模板文件很有用,在模板文件的title中添加代码 <%= htmlWebpackPlugin.options.title %>
template: 模板文件(模板html文件)
filename: 生成的html文件名
chunks: 允许插入的模块名(此处一般添加公共块,以及每个页面独立的块,请注意添加的顺序)

以上这些配置是我举例需要独立控制的配置信息,有关配置的其他信息这里不再多说。

我们需要单独创建一个配置文件来定义我们上边的自定义信息,这里呢在config文件下添加multiple.js文件

multiple.js

简单粗暴上段代码:

const path = require(‘path‘);module.exports = { ?index: ‘page1/index.html‘, ?pages: [ ???{ ?????page: ‘page1‘, ?????entry: path.resolve(__dirname, ‘../src/page1/main.js‘), ?????title: ‘这是页面1‘, ?????filename: path.resolve(__dirname, ‘../dist/page1/index.html‘), ?????template: path.resolve(__dirname, ‘../index.html‘) ???}, ???{ ?????page: ‘page2‘, ?????entry: path.resolve(__dirname, ‘../src/page2/main.js‘), ?????title: ‘这是页面2‘, ?????filename: path.resolve(__dirname, ‘../dist/page2/index.html‘), ?????template: path.resolve(__dirname, ‘../index.html‘) ???}, ???***}

其中index表示开发阶段devServer使用的首页,便于控制(也可以不设置直接在devServer里配置)

正文

哈哈哈,前边都是基础准备工作,
接下来开始正文,我们知道对于多页面配置首先要webpack的entry为多入口,所以在webpack的 base 配置中配置多入口,因为这个入口文件需要我们在multiple.js中控制,所以首先引入multiple.js,然后生成entry对象

/* webpack.base.conf.js */const multiple = require(‘../config/multiple‘) ?// 引入文件const entry = {};multiple.pages.forEach((value, index) => { ?entry[value.page] = value.entry;})// 在webpack配置中配置const webpackConfig = { ?*** ?entry: entry, ?output: { ???path: config.build.assetsRoot, ???filename: ‘[name].js‘, ???publicPath: process.env.NODE_ENV === ‘production‘ ?????? config.build.assetsPublicPath ?????: config.dev.assetsPublicPath ?}, ?***}multiple.pages.forEach((value, index) => { ?webpackConfig.plugins.push( ???new HtmlWebpackPlugin({ ?????title: value.title || ‘这里是标题‘, ?????filename: value.filename, ?????template: value.template, ?????inject: true, ?????hash: true, ?????chunks: [‘manifest‘, ‘vendor‘, ‘app‘, value.page], ?????minify: false, ?????chunksSortMode: ‘dependency‘ ???}) ?)})***

注:在vue-cli配置中的webpack.prop.conf.js有配置HtmlWebpackPlugin,注意将其注释掉

在 webpack.dev.conf.js 中的devServer配置中可以自定义打开首页,这个可以根据需求配置此处不再赘余。

至此所有的配置已完成,可以修改 multiple.js 文件定制自己的多页面开发了

总结一下,我们需要修改的文件

webpack.base.conf.js 修改入口文件,根据我们的配置文件
webpack.prop.conf.js 注释掉默认的HtmlWebpackPlugin配置
webpack.dev.conf.js 根据需求定制入口页面
multiple.js 定制我们自己的多页面信息

另:对于我们的 vendor 文件我们也需要做出相应的修改(主要是应对不同页面引用不同的公共文件,而造成页面加载不必要的文件)(需要的插件 webpack.optimize.CommonsChunkPlugin ),具体的配置修改,将在下次说明。手动[调皮]

原文地址

[转] vue&webpack多页面配置

原文地址:https://www.cnblogs.com/chris-oil/p/10017219.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved