最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

談?wù)勎以趘ue-cli3中用預(yù)渲染遇到的坑

 更新時間:2020年04月22日 15:03:44   作者:麥麥麥造  
這篇文章主要介紹了談?wù)勎以趘ue-cli3中用預(yù)渲染遇到的坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

在開發(fā)自己的個人網(wǎng)站的時候后,選擇了用vue來開發(fā),不可避免的遇到要對seo做優(yōu)化。鑒于目前頁面也不多,因此首先采用的是預(yù)渲染的方式。

本來以為把插件一裝,配置一配,咔咔咔就能搞定,結(jié)果發(fā)現(xiàn)并沒有想的那么簡單。因為首先就遇到了兩個報錯,折騰了半個晚上。

問題及解決方案

第一個報錯:

Unable to prerender all routes!

這個問題是在設(shè)置好配置之后,build的時候報出來的。主要癥狀就是打開了瀏覽器后卡主不動,然后就強制退出了。

解決方案:

參考了github上的issus https://github.com/chrisvfritz/prerender-spa-plugin/issues/196

很神奇的就好了!至于怎么神奇就后面再說👇

第二個報錯:

This relative module was not found:

這個報錯也是編譯的時候出現(xiàn)的。

解決方案:

routes里的前兩個路由不要用懶加載的方式來寫...🤷‍♀️

具體就是:

# vue.config.js
new PrerenderSPAPlugin({...
routes: ['/', '/pg1', '/pg2', '/pg3', '/pg4'],
...
# router/index.js
import Index from '../views/Index.vue'
import Pg1 from '../views/Pg1.vue'

const routes = [{
  path: '/',
  name: 'Index',
  component: Index, // 不要用懶加載
 },
 {
  path: '/pg1',
  name: 'Pg1',
  component: Pg1 // 不要用懶加載
 },
 {
  path: '/pg2',
  name: 'Pg2',
  component: () => import('../views/Pg2.vue'), // 可以用懶加載
 },

爬坑歷程

第一個問題是最神奇的,按照他說的來說,就是不能渲染所有的路由,但我目前也就只有五個路由在配置里面,然后我減到兩個路由還是報這個錯,所以肯定不是路由的原因。按照github上的方案改寫了之后,好像就好了。然后當(dāng)時我就盡想著先編譯成功再說,但等我回過頭來,想再復(fù)現(xiàn)出來研究一下的時候,怎么都復(fù)現(xiàn)不出來...🤷‍♀️
當(dāng)時時間也很晚了,沒辦法也就只好作罷了...

附上完整配置

# vue.config.js
const path = require('path');
const PrerenderSPAPlugin = require('prerender-spa-plugin');
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
  configureWebpack: () => {
  if (process.env.NODE_ENV === 'production') {
   console.log(process.env.NODE_ENV)
   return {
    plugins: [
     new PrerenderSPAPlugin({
      //要求-給的WebPack-輸出應(yīng)用程序的路徑預(yù)渲染。
      staticDir: path.join(__dirname, './dist/fontend'),
      //必需,要渲染的路線。 
      routes: ['/', '/Pg1', '/Pg2', '/Pg3', '/Pg4'],
      //必須,要使用的實際渲染器,沒有則不能預(yù)編譯 
     
      renderer: new Renderer({
       inject: {
        foo: 'bar'
       },
       headless: false, //渲染時顯示瀏覽器窗口。對調(diào)試很有用。 
       //等待渲染,直到檢測到指定元素。
       //例如,在項目入口使用`document.dispatchEvent(new Event('custom-render-trigger'))` 
       renderAfterDocumentEvent: "render-event",
       renderAfterTime: 5000
      })
     })
    ]
   }
  } else {
   return;
  }

# main.js
new Vue({

 router,
 render: h => h(App),
 mounted() {
  document.dispatchEvent(new Event('render-event')) # 新增此句
 }
}).$mount('#app')

# router/index.js
import Index from '../views/Index.vue'
import Pg1 from '../views/Pg1.vue'
const routes = [{
  path: '/',
  name: 'Index',
  component: Index, // 不要用懶加載
 },
 {
  path: '/Pg1',
  name: 'Pg1',
  component: Pg1 // 不要用懶加載
 },
 {
  path: '/Pg2',
  name: 'Pg2',
  component: () => import('../views/Pg2.vue'), // 可以用懶加載
 },
 {
  path: '/Pg3',
  name: 'Pg3',
  component: () => import('../views/Pg3.vue'), // 可以用懶加載
 },
 {
  path: '/Pg4',
  name: 'Pg4',
  component: () => import('../views/Pg4.vue'), // 可以用懶加載
}]

參考鏈接
[1] vue-cli3.0預(yù)渲染 https://www.jianshu.com/p/813c21899540
[2]  Unable to prerender all routes! https://github.com/chrisvfritz/prerender-spa-plugin/issues/196

到此這篇關(guān)于談?wù)勎以趘ue-cli3中用預(yù)渲染遇到的坑的文章就介紹到這了,更多相關(guān)vue-cli3 預(yù)渲染內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue實現(xiàn)無限加載瀑布流

    Vue實現(xiàn)無限加載瀑布流

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)無限加載瀑布流,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • vue組件component的注冊與使用詳解

    vue組件component的注冊與使用詳解

    組件是Vue是一個可以重復(fù)使用的Vue實例, 它擁有獨一無二的組件名稱,它可以擴展HTML元素,以組件名稱的方式作為自定義的HTML標(biāo)簽,這篇文章主要介紹了vue組件component的注冊與使用,需要的朋友可以參考下
    2022-08-08
  • Vue全家桶實踐項目總結(jié)(推薦)

    Vue全家桶實踐項目總結(jié)(推薦)

    本篇文章主要介紹了Vue全家桶實踐項目總結(jié)(推薦),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 關(guān)于Vue Webpack2單元測試示例詳解

    關(guān)于Vue Webpack2單元測試示例詳解

    這篇文章主要給大家介紹了關(guān)于Vue Webpack2單元測試的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • Vue?關(guān)于$emit與props的使用示例代碼

    Vue?關(guān)于$emit與props的使用示例代碼

    父組件使用 props 把數(shù)據(jù)傳給子組件,子組件使用 $emit 觸發(fā)父組件的自定義事件,今天通過示例給大家詳細介紹下Vue?關(guān)于$emit與props的使用,感興趣的朋友一起看看吧
    2022-03-03
  • Vue mixin實現(xiàn)組件功能復(fù)用示例詳解

    Vue mixin實現(xiàn)組件功能復(fù)用示例詳解

    這篇文章主要為大家介紹了Vue mixin實現(xiàn)組件功能復(fù)用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 幫助我們高效操作的Virtual?DOM簡單實現(xiàn)

    幫助我們高效操作的Virtual?DOM簡單實現(xiàn)

    這篇文章主要為大家介紹了幫助我們高效操作Virtual?DOM簡單實現(xiàn)及原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 基于vue封裝一個安全鍵盤組件

    基于vue封裝一個安全鍵盤組件

    大部分中文應(yīng)用彈出的默認(rèn)鍵盤是簡體中文輸入法鍵盤,在輸入用戶名和密碼的時候,如果使用簡體中文輸入法鍵盤,用戶的輸入記錄會被緩存下來所以我們需要一個安全鍵盤,本文給大家介紹了如何基于vue封裝一個安全鍵盤組件,需要的朋友可以參考下
    2023-12-12
  • Vue.js項目實戰(zhàn)之多語種網(wǎng)站的功能實現(xiàn)(租車)

    Vue.js項目實戰(zhàn)之多語種網(wǎng)站的功能實現(xiàn)(租車)

    這篇文章主要介紹了Vue.js項目實戰(zhàn)之多語種網(wǎng)站(租車)的功能實現(xiàn) ,需要的朋友可以參考下
    2019-08-08
  • vue中導(dǎo)出Excel表格的實現(xiàn)代碼

    vue中導(dǎo)出Excel表格的實現(xiàn)代碼

    項目中我們可能會碰到導(dǎo)出Excel文件的需求,這篇文章主要介紹了vue中導(dǎo)出Excel表格的實現(xiàn)代碼,非常具有實用價值,需要的朋友可以參考下
    2018-10-10

最新評論

华容县| 青冈县| 桂林市| 扎兰屯市| 绥滨县| 阜平县| 那坡县| 龙山县| 南投县| 遵义县| 安泽县| 平度市| 炎陵县| 鄂托克旗| 汝南县| 平武县| 普安县| 元朗区| 泊头市| 吉木乃县| 衡南县| 景德镇市| 镇江市| 河间市| 镇远县| 从化市| 娄烦县| 成都市| 上虞市| 嘉峪关市| 仁布县| 汉寿县| 巴马| 理塘县| 阿巴嘎旗| 海晏县| 溧阳市| 中山市| 沈丘县| 六盘水市| 新民市|