vue-cli3及以上版本创建多页面应用。

为什么要多页面?

    以实际场景为例,到了某个节日,需要根据需求做一个活动页,并且活动页技术体系和原本单页面一样(如vue),并且多端共用此页面(不能集成在原本的单页应用里了,太庞大)。那么我们要么是单独开一个项目,要么就是想办法将项目改造成多页面。介于前者太浪费资源且没必要(因为很多共用部分,甚至组件共用),所以我们选择将vue-cli改造成多页面应用。  

先摆一些小坑:

1.无法通过路径访问多页面的某一页面,例如:

http://172.16.10.181:8080/subPage.html 

http://172.16.10.181:8080/index.html

2.单页面的时候没事,改为多页面后,页面空白,并弹出警告:

The resource http://172.16.10.181:8080/js/subpage.js was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.

问题先放一放,现根据官网api实现多页面配置(会在下面代码注释中说明)。

目录结构(打x的是脚手架自带,改为多页无用的文件):

vue.config.js

module.exports = {

    pages: {
        index: {
            // page 的入口
            entry: 'src/page/index/main.js',
            // 模板来源
            template: 'src/page/index/index.html',
            // 在 dist/index.html 的输出
            filename: 'index.html',
            // 当使用 title 选项时,
            // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
            title: 'Index Page',
            // 在这个页面中包含的块,默认情况下会包含
            // 提取出来的通用 chunk 和 vendor chunk。
            // 最后一项需要设置为和key值一样的字符串,不然则会报第二个小坑的错误,
            // 切记要一模一样,代表着这部分需要这个模块。
            // 三个都要配置,且最后一项,也就是模块名不可重复,否则会无法访问
            chunks: ['chunk-vendors', 'chunk-common', 'index']
        },
        // 当使用只有入口的字符串格式时,
        // 模板会被推导为 `public/subpage.html`
        // 并且如果找不到的话,就回退到 `public/index.html`。
        // 输出文件名会被推导为 `subpage.html`。
        subpage: {
            // page 的入口
            entry: 'src/page/subPage/main.js',
            // 模板来源
            template: 'src/page/index/index.html',
            // 在 dist/index.html 的输出
            filename: 'subPage.html',
            // 当使用 title 选项时,
            // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
            title: 'sub Page',
            // 在这个页面中包含的块,默认情况下会包含
            // 提取出来的通用 chunk 和 vendor chunk。
            // 最后一项需要设置为和key值一样的字符串,不然则会报第二个小坑的错误,
            // 切记要一模一样,代表着这部分需要这个模块。
            // 三个都要配置,且最后一项,也就是模块名不可重复,否则会无法访问
            // 注意此处我们虽然文件名是subPage.html,但是我们的key值并不是驼峰格式,
            //以key为准,不要被文件名影响
            chunks: ['chunk-vendors', 'chunk-common', 'subpage']
        }
    }
}

其实cli已经封装的很简单了,配置一个pages就可以实现多页面了,各个配置项我们还要仔细点,不然就会有很多小问题出现,弄的一头雾水

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值