Talk is cheap

Vue-cli 配置多页面

Vue是单页面应用,但是在实际的开发中,经常遇到的问题是:一个网站有前台也有后台。如果把前台和后台都呈现在一个单页面中,那么最终压缩出来的Js 等静态资源文件肯定就是比较大,也会影响加载的速度。这时候就可以将一个vue-cli脚手架的页面分成两个,index.html负责呈现前台界面。admin.html 负责呈现后台界面。

网上找到过两篇文章,配置的目录各不相同,但思想是相同的。如果看过 Webpack文档 ,了解核心的几个概念:entry、output、loader 在结合vue-cli的配置,就能够得心应手的配置自己的多页面了。

配置的时候,有两个最重要的配置项:entry、template 。

  • entry 就是webpack中的入口,表示文从这个文件开始,webpack开始构建相关的依赖关系。
  • template 就是配置的页面了。
    配置文件如下:

    module.exports = {
    pages: {
    index: {
      // page 的入口
      entry: "src/views/index/main.js",
      // 模板来源
      template: "public/index.html",
      // 在 dist/index.html 的输出
      filename: "index.html",
      // 当使用 title 选项时,
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: "首页",
      // 在这个页面中包含的块,默认情况下会包含
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ["chunk-vendors", "chunk-common", "index"]
    },
    admin: {
      // page 的入口
      entry: "src/views/admin/main.js",
      // 模板来源
      template: "public/admin.html",
      // 在 dist/index.html 的输出
      filename: "admin.html",
      // 当使用 title 选项时,
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: "后台",
      // 在这个页面中包含的块,默认情况下会包含
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ["chunk-vendors", "chunk-common", "admin"]
    }
    }
    };

目录结构如下:

│  .browserslistrc
│  .gitignore
│  babel.config.js
│  package-lock.json
│  package.json
│  postcss.config.js
│  README.md
│  tree.txt
│  vue.config.js
│  
├─public
│      admin.html
│      favicon.ico
│      index.html
│      
└─src
    ├─assets
    │      logo.png
    │      
    ├─components
    │      HelloWorld.vue
    │      
    └─views
        │  About.vue
        │  Home.vue
        │  
        ├─admin
        │      Admin.vue
        │      main.js
        │      router.js
        │      store.js
        │      
        └─index
                Index.vue
                main.js
                router.js
                store.js

这里的操作很简单就是在views目录下 新建了两个文件夹 admin 和index ,然后将vue-cli3生的位于views下的 app.vue、main.js、router.js、store.js复制到这两个目录。

剩下就很简单了,只需要在相应的文件中,修改一下文件的 引用路径 还有就是 渲染的div的id名字了。 下面是index/main.js 的代码,其中的路径已经修改。

import Vue from 'vue'
import Index from './Index'
import router from './router'
import store from './store'

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(Index)
}).$mount('#index')
未经允许不得转载:CheapTalk » Vue-cli 配置多页面
分享到: 更多 (0)

评论 24

评论前必须登录!

 

  1. #1

    沙发沙发

    Caesar2年前 (2019-04-30)
  2. #2

    二楼二楼

    景色2年前 (2019-04-30)
  3. #3

    buy generic cialis online cialis buy cialis samples

    cialis buy4个月前 (06-26)
  4. #4

    buy viagra medicines online where is generic viagra manufactured
    generic for viagra herbal viagra
    online australia viagra 25 mg buy online

  5. #5

    generic viagra paypal buy buy viagra usa 2018 buy cheap viagra online next day delivery what drug company makes viagra
    make viagra

  6. #6

    what dose of cialis works best cialis online pharmacy usa buying cialis in canada overnight cialis delivery buying cialis
    online illegal

  7. #7

    como funciona o generico do viagra viagra best price pfizer viagra 100mg price ordering viagra in the
    uk where can you buy viagra

  8. #8

    acquistare viagra originale online viagra romania online how to buy viagra online viagra online kopen viagra online erfaring

  9. #9

    generic viagra for cheap is there an over the counter viagra order viagra soft using viagra for fun cheap herbal viagra online

  10. #10

    how to order viagra online uk common viagra dose
    viagra online uk how long is viagra effective places to buy viagra online

  11. #11
  12. #12

    how to find real viagra online pfizer viagra generico prezzo ordering viagra online walmart generic viagra price cheap generic viagra usa

  13. #13

    best online viagra forum natures viagra buy viagra professional online viagra non prescription female viagra in india online

  14. #14

    24 hour loans online payday loans in nashville tn payday loans with bad credit lowest
    loan rates payday loans over 6 months

  15. #15

    f09431 viagra gluten free

    https://viagrabuycheap1.com/

    compra de viagra sper

  16. #16

    best prices is is

    6192 be cheap is and is

    6192 discounts for is is

    6192

    LyudaCrops3个月前 (07-17)
  17. #17
  18. #18
  19. #19

    f09421 buy viagra sildenafil

    https://viagrabuycheap1.com/ – cheap viagra

    viagra vs cialis costs

  20. #20
  21. #21
  22. #22
  23. #23
  24. #24

    at is per pill

    f10a comprar is bilbao

    f10a

    SolasCrops3个月前 (07-22)