vue-cli單頁面預渲染seo-prerender-spa-plugin操作
1 vue-cli-plugin-prerender-spa
使用方法:
vue add prerender-spa
在安裝的過程中會需要安裝一個chrome,網(wǎng)速不好可能導致不能下載,導致安裝失敗,可以取消chrome的安裝,然后手動下載放在指定的目錄下;
安裝過程中選擇需要預渲染的route
安裝成功:
自動在main.js中加入:
2 使用prerender-spa-plugin插件
cnpm i prerender-spa-plugin --save-dev
vue-cli2.0 在build/webpack.prod.conf.js中:
const PrerenderSPAPlugin = require('prerender-spa-plugin')
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer
注冊插件:
在plugins中加入:
new PrerenderSPAPlugin({ staticDir: path.join(__dirname, '../dist'),//打包文件的路徑,或者自定義一個文件路徑 routes: ['/test', '/'],//需要預渲染的route路徑 renderer: new Renderer({ inject: { foo: 'bar' }, headless: true, renderAfterDocumentEvent: 'render-event'//需要在實例化Vue中監(jiān)聽的事件,名稱要相對應 }) })
vue-cli3.0
在vue.config.js
const PrerenderSPAPlugin = require('prerender-spa-plugin'); const Renderer = PrerenderSPAPlugin.PuppeteerRenderer; const path = require('path'); module.exports = { configureWebpack: config => { if (process.env.NODE_ENV !== 'production') return; return { plugins: [ new PrerenderSPAPlugin({ // 生成文件的路徑,也可以與webpakc打包的一致。 // 下面這句話非常重要!??! // 這個目錄只能有一級,如果目錄層次大于一級,在生成的時候不會有任何錯誤提示,在預渲染的時候只會卡著不動。 staticDir: path.join(__dirname,'dist'), // 對應自己的路由文件,比如a有參數(shù),就需要寫成 /a/param1。 routes: ['/', '/product','/about'], // 這個很重要,如果沒有配置這段,也不會進行預編譯 renderer: new Renderer({ inject: { foo: 'bar' }, headless: false, // 在 main.js 中 document.dispatchEvent(new Event('render-event')),兩者的事件名稱要對應上。 renderAfterDocumentEvent: 'render-event' }) }), ], }; } }
在main.js中加入:
new Vue({ el: '#app', router, components: { App }, template: '<App/>', mounted() { // You'll need this for renderAfterDocumentEvent. document.dispatchEvent(new Event('render-event')) } })
以上這篇vue-cli單頁面預渲染seo-prerender-spa-plugin操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
element的表單校驗證件號規(guī)則及輸入“無”的情況校驗通過(示例代碼)
這篇文章主要介紹了element的表單校驗證件號規(guī)則及輸入“無”的情況校驗通過,使用方法對校驗數(shù)據(jù)進行過濾判斷,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2023-11-11vuex 中輔助函數(shù)mapGetters的基本用法詳解
mapGetters輔助函數(shù)僅僅是將 store 中的 getter 映射到局部計算屬性,在組件或界面中不使用mapGetter調用映射vuex中的getter,在組件或界面中使用mapGetter調用映射vuex中的getter,具體內容跟隨小編一起通過本文學習吧2021-07-07