Vue-cli多页配置及多页面之间的跳转问题

vue开发,现在大部分做的都是(SPA)应用,但是,由于,需求不同,我们针对的用户需求变更较为,频繁,如果每次都全量打包更新,给开发的自测,及测试妹子的任务就会多,每次都要重新验证一下才放心。所以,想着能不能搞一个多页的,进行增量升级,所以就有了以下的配置。网上配置很多,也很详细,我也有参考。废话不多说开始吧!如果有说的不对的,请大家指出,我会及时改正。

一 目录结构调整

修改之后目录

 

二,配置文件修改

修改文件utils.js添加以下

// glob是webpack安装时依赖的一个第三方模块,还模块允许你使用 等符号, 例如lib/.js就是获取lib文件夹下的所有js后缀名的文件
var glob = require(‘glob’)
// 页面模板
var HtmlWebpackPlugin = require(‘html-webpack-plugin’)
// 取得相应的页面路径,因为之前的配置,所以是src文件夹下的pages文件夹
var PAGE_PATH = path.resolve(__dirname, ‘…/src/pages’)
// 用于做相应的merge处理
var merge = require(‘webpack-merge’)

//多入口配置
// 通过glob模块读取pages文件夹下的所有对应文件夹下的js后缀文件,如果该文件存在
// 那么就作为入口处理
exports.entries = function() {
var entryFiles = glob.sync(PAGE_PATH + ‘//.js’)
var map = {}
entryFiles.forEach((filePath) => {
var filename = filePath.substring(filePath.lastIndexOf(’/’) + 1, filePath.lastIndexOf(’.’))
map[filename] = filePath
})
return map
}

//多页面输出配置
// 与上面的多页面入口配置相同,读取pages文件夹下的对应的html后缀文件,然后放入数组中
exports.htmlPlugin = function() {
let entryHtml = glob.sync(PAGE_PATH + ‘//.html’)
let arr = []
entryHtml.forEach((filePath) => {
let filename = filePath.substring(filePath.lastIndexOf(’/’) + 1, filePath.lastIndexOf(’.’))
let conf = {
// 模板来源
template: filePath,
// 文件名称
filename: filename + ‘.html’,
// 页面模板需要加对应的js脚本,如果不加这行则每个页面都会引入所有的js脚本
chunks: [‘manifest’, ‘vendor’, filename],
inject: true
}
if (process.env.NODE_ENV === ‘production’) {
conf = merge(conf, {
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
},
chunksSortMode: ‘dependency’
})
}
arr.push(new HtmlWebpackPlugin(conf))
})
return arr
}

修改build/webpack.base.conf.js的入口配置

 

开发环境build/webpack.dev.conf.js 注释 newHtmlWebpackPlugin…… 在最后添加concat(utils.htmlPlugin())

 生产环境webpack.prod.conf.js 注释 newHtmlWebpackPlugin…… 在最后添加concat(utils.htmlPlugin())

 

三 完成测试

在http://localhost:8083/test.html (注:/test.html 不是 /#/test.html)

就可以看到你想要的结果了。以上,就是多页的配置,网上有好多,我只是做了一下笔记。

接下来,写下页面,页面之间的跳转

  如上图。我们配置后,其实不难看出,只是多了出口和入口并不能,用统一一个router搞定页面之前的跳转,所以,我这边,用的是单页,即同一入口出口,文件我们用router,页面与页面之间(即 indtx.html与test.htms)的跳转,用location.href 

window.location.href = '/test.html'

配置完后,上传打包,我们会发现,跳转并不是我们想想中的那样,他的根目录不同了需要我们做一点处理,这里我想到了两个方案

方案一: 配置地址根目录

即,在每一个入口文件.js里加上一个公共的变量,挂在vue上当然,你也可以挂到window上。

/* 定义不同入口,跳转路径配置 index.js */ if (location.hostname === 'localhost' ) { Vue.prototype.HTTPLOCAT = '' } else { const http = window.location.protocol + '//' + location.hostname + ':' + location.port Vue.prototype.HTTPLOCAT = http + '/netopenws/wt/vue/dist' // (这个路径改为你服务器的路径) }

接下来页面的跳转用就好了。 

window.location.href = this.HTTPLOCAT + '/test.html'

方案二: nginx代理转发 

  nginx代理转发也不麻烦,只是在我们跳转里,前面加上固定的文件名,在nginx进行,代理一下即可。

/* 定义不同入口,跳转路径配置 index.js */ if (location.hostname === 'localhost' ) { Vue.prototype.HTTPLOCAT = '' } else { Vue.prototype.HTTPLOCAT = '/dist' // (这个路径改为你服务器访问路径) }

//页面的跳转 window.location.href = this.HTTPLOCAT + '/test.html'

对应的ngnix  代理

location /dist { root usr/local/ dist; }

以上就是这次多页配置的总结

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: vue-cli-plugin-multi-page是一个Vue CLI插件,它的功能是用于创建多页应用的模板和配置。 首先,我们需要了解Vue CLI。Vue CLI是一个用于快速构建Vue.js应用的脚手架工具,它提供了一些默认的配置和构建工具,使我们可以更轻松地开发Vue项目。 而vue-cli-plugin-multi-page插件则扩展了Vue CLI的功能,允许我们通过简单的命令或配置来创建多页应用。多页应用是指一个项目有多个HTML页面,每个页面一个独立的单页应用。 使用这个插件,我们可以方便地创建多个页面,每个页面都有自己的入口文件、模板和路由配置。我们只需要在项目执行相应的命令或编辑配置文件,就可以自动生成多页应用的基本结构。 此外,vue-cli-plugin-multi-page还支持通过npm安装,这使得我们能够更加轻松地将其集成到我们正在开发的项目。 总之,vue-cli-plugin-multi-page是一个非常实用的Vue CLI插件,它为我们开发多页应用提供了便利的模板和配置。通过它,我们可以快速创建多个页面,并享受到Vue CLI提供的其他一系列开发便捷功能。 ### 回答2: vue-cli-plugin-multi-page/plugin npm 是一个 Vue CLI 插件,它可以帮助我们在 Vue.js 项目快速创建多页面应用,并且可以通过 npm 进行安装和管理。 Vue CLI 是一个脚手架工具,它可以帮助我们快速构建和管理 Vue.js 项目。而 vue-cli-plugin-multi-page 则是针对多页面应用的插件,它扩展了 Vue CLI 的功能,使我们可以轻松创建多个页面,并且每个页面都具有独立的入口文件、路由配置和其他自定义设置。 使用 npm 进行安装和管理插件是非常方便的。我们只需要在终端执行 npm 命令,如 npm install vue-cli-plugin-multi-page,就可以将该插件安装到我们的项目。安装完成后,我们可以在项目的配置文件进行插件的相关设置,例如指定多页面应用的入口文件、路由配置页面模板等。 通过 vue-cli-plugin-multi-page/plugin npm,我们可以避免手动配置多页面应用的繁琐工作。插件提供了一些预设的功能和配置选项,使我们能够更快速、更灵活地创建和管理多页面应用。同时,使用 npm 来安装和管理插件,也使我们可以方便地更新、升级插件版本,以及与其他依赖项进行配合使用。 总而言之,vue-cli-plugin-multi-page/plugin npm 是一个便捷的工具,它可以帮助我们使用 Vue CLI 快速创建多页面应用,并通过 npm 进行方便的安装和管理。 ### 回答3: vue-cli-plugin-multi-page/plugin npm 是一个用于 Vue.js 的插件,可以帮助开发者在使用 Vue CLI 创建多页面应用时更方便地管理页面。 首先,Vue CLI 是 Vue.js 官方提供的一个脚手架工具,用于快速搭建 Vue.js 项目的基础结构。然而,Vue CLI 默认情况下只支持单页面应用。对于需要创建多个页面的项目,就需要使用到 vue-cli-plugin-multi-page/plugin npm 这个插件。 使用该插件,首先需要在项目安装它。可以通过 npm 或 yarn 来安装,具体命令如下: npm install vue-cli-plugin-multi-page/plugin 或 yarn add vue-cli-plugin-multi-page/plugin 安装完成后,就可以在 Vue CLI 创建的项目使用该插件了。在项目根目录下的 vue.config.js 文件,可以配置多个页面的入口和模板。 通过配置入口和模板,插件将会自动根据配置生成对应的多个页面,使开发者可以在同一个 Vue 项目创建多个页面,并帮助管理每个页面的入口、模板以及相关的资源。 使用该插件,不仅可以方便地创建多个页面,还可以通过配置实现不同页面的路由、跳转等功能。同时,插件也支持自定义配置,可以根据项目需求进行灵活的配置和扩展。 总之,vue-cli-plugin-multi-page/plugin npm 是一个功能强大的 Vue CLI 插件,可以帮助开发者更方便地创建和管理多页面应用,同时提供了丰富的配置和扩展选项。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值