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

vue腳手架配置預渲染及prerender-spa-plugin配置方式

 更新時間:2022年05月26日 10:22:58   作者:眼睛微微笑  
這篇文章主要介紹了vue腳手架配置預渲染及prerender-spa-plugin配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

腳手架配置預渲染及prerender-spa-plugin配置

預渲染: 便于seo優(yōu)化;既查看源碼 是 html格式

用到插件:

cnpm install prerender-spa-plugin --save

腳手架2.0:(自己的是2.0)

1.build/webpack.prod.conf.js 配置

const PrerenderSPAPlugin = require('prerender-spa-plugin')
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer
const webpackConfig = merge(baseWebpackConfig, {
    plugins:[
    // vue-cli生成的配置就有了
      new HtmlWebpackPlugin({
          filename: config.build.index,
          template: 'index.html',
          inject: true,
          minify: {
              removeComments: true,
              collapseWhitespace: true,
              removeAttributeQuotes: true
          },
          chunksSortMode: 'dependency'
  	}),
  // 配置PrerenderSPAPlugin
 	 new PrerenderSPAPlugin({
      // 生成文件的路徑,也可以與webpakc打包的一致。
      staticDir: path.join(__dirname, '../dist'),
      
      // 對應自己的所有路由文件,比如index有參數(shù),就需要寫成 /index/param1。這個其實不需要;千萬不要加'/'這個     嵌套路由得commonquestion直接寫即可
      routes: ['index','...','/commonQuestion','/commonQuestion/questionList','/commonQuestion/questionDetailInfo'],
      //  ;
      renderer: new Renderer({
         inject: {						// 可選;最好還是用
                      foo: 'bar'
                  },
          headless: false,				// 可選;最好用
          renderAfterTime: 5000,		// 通過實踐是必選  官網(wǎng)說可選有誤    一定要必選
           renderAfterDocumentEvent: 'render-event'				// 可選;最好用
      })
  }),
    ]
})

2.路由得index.js添加屬性:

? mode:‘history’,

修改config/index.js 中的build的 assetsPublicPath: ‘/’ ;不然會導致刷新頁面路徑錯亂導致樣式或者js丟失;

修改main.js

new Vue({
  el: '#app',
  router,
  store,				// 如果需要了切記引入啊   切記需要掛載的全部掛載上去
  render: h => h(App),
  mounted () {
    document.dispatchEvent(new Event('render-event'))
  }
})

腳手架3.0 (未驗證,應該行)

1.build/webpack.prod.conf.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,
                          renderAfterTime: 5000,  //   必選哈
                        // 在 main.js 中 document.dispatchEvent(new Event('render-event')),兩者的事件名稱要對應上。
                        renderAfterDocumentEvent: 'render-event'
                    })
                }),
            ],
        };
    }
}

2.main.js配置

new Vue({
? router,
? store,
? render: h => h(App),
? mounted () {
? ? document.dispatchEvent(new Event('render-event'))
? }
}).$mount('#app')

其他修改同2.0; 

記錄vue預渲染prerender-spa-plugin的坑

安裝

命令:cnpm install prerender-spa-plugin -D  //避免報錯,會自動下載文件等待

找到build下的webpack.prod.conf.js

 頭部添加

const PrerenderSPAPlugin = require('prerender-spa-plugin') //引用插件
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer
plugins: [
? ? // 配置PrerenderSPAPlugin預渲染
? ? ? ?new PrerenderSPAPlugin({
? ?// 生成文件的路徑,也可以與webpakc打包的一致。
? ? ? staticDir: path.join(__dirname, '../dist'),
? // 對應自己的路由文件,比如index有參數(shù),就需要寫成 /index/param1。
? ? ? routes: ['/','/about'],
? // 這個很重要,如果沒有配置這段,也不會進行預編譯
? ? ? renderer: new Renderer({
? ? ? ? ?// inject:{
? ? ? ? ? ?// foo:'bar'
? ? ? ? // },
? ? ? ?// 觸發(fā)渲染的時間,用于獲取數(shù)據(jù)后再保存渲染結果
? ? ? ?renderAfterTime: 5000,
? ? ? ? ? ?headless: false,
? ? ? ? ? ?// 在 main.js 中 document.dispatchEvent(new Event('render-event')),兩者的事件名稱要對應上。
? ? ? ? ? renderAfterDocumentEvent: 'render-event'
? ? ? ?})
? ?}),
]

在main.js中

? ?new Vue({
? ? ? ? el: '#app',
? ? ? ? render: h => h(App),
? ? ? ? mounted () {
? ? ? ? ? ? document.dispatchEvent(new Event('render-event'))
? ? ? ? }
? ?})
//在HtmlWebpackPlugin中添加chunks: ['manifest', 'vendor', 'app'], ? ? ?//防止報錯webpackJsonp is not defined
new HtmlWebpackPlugin({
? ? filename: config.build.index,
? ? template: 'index.html',
? ? inject: true,
? ? minify: {
? ? ? ? removeComments: true,
? ? ? ? collapseWhitespace: true,
? ? ? ? removeAttributeQuotes: true
? ? ? ? // more options:
? ? ? // https://github.com/kangax/html-minifier#options-quick-reference
? ? },
? ? ? // necessary to consistently work with multiple chunks via CommonsChunkPlugin
? ? ?chunks: ['manifest', 'vendor', 'app'],
? ? ? chunksSortMode: 'dependency'
}),
//路由中mode:'history',

//刷新首屏閃現(xiàn)問題

百度方案(測試暫無效果)

根目錄的index.html中添加display:none;

app.vue中中修改為block

//百度商橋重復加載出現(xiàn)兩次的問題

在打包后生產(chǎn)的html中刪除生成的那一份商橋代碼,放到服務器會自動生成新一份

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 關于element?ui中的el-scrollbar橫向滾動問題

    關于element?ui中的el-scrollbar橫向滾動問題

    這篇文章主要介紹了關于element?ui中的el-scrollbar橫向滾動問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue-cli2,vue-cli3,vite?生產(chǎn)環(huán)境去掉console.log

    vue-cli2,vue-cli3,vite?生產(chǎn)環(huán)境去掉console.log

    console.log一般都是在開發(fā)環(huán)境下使用的,在生產(chǎn)環(huán)境下需要去除?,本文主要介紹了vue-cli2,vue-cli3,vite?生產(chǎn)環(huán)境去掉console.log,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • vue2.0的contextmenu右鍵彈出菜單的實例代碼

    vue2.0的contextmenu右鍵彈出菜單的實例代碼

    本篇文章主要介紹了vue2.0的contextmenu右鍵彈出菜單的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 詳解使用VueJS開發(fā)項目中的兼容問題

    詳解使用VueJS開發(fā)項目中的兼容問題

    這篇文章主要介紹了詳解使用VueJS開發(fā)項目中的兼容問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • VUE腳手架框架編寫簡潔的登錄界面的實現(xiàn)

    VUE腳手架框架編寫簡潔的登錄界面的實現(xiàn)

    本文主要介紹了VUE腳手架框架編寫簡潔的登錄界面的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Vue3中從一個頁面(index)傳輸數(shù)值到另一個頁面(form)的方法詳解

    Vue3中從一個頁面(index)傳輸數(shù)值到另一個頁面(form)的方法詳解

    在 Vue 3 開發(fā)中,經(jīng)常需要在不同組件或頁面之間傳遞數(shù)據(jù),例如從 index 頁面獲取某個數(shù)值(如 cntr、tradeId)后,將其傳輸?shù)?nbsp;form 頁面進行填寫或編輯,本文將介紹幾種常見的數(shù)據(jù)傳輸方法,并為每種方法提供一個小的 Demo 代碼示例,需要的朋友可以參考下
    2025-02-02
  • el-select二次封裝實現(xiàn)可分頁加載數(shù)據(jù)的示例代碼

    el-select二次封裝實現(xiàn)可分頁加載數(shù)據(jù)的示例代碼

    使用el-select時一次性渲染幾百條數(shù)據(jù)時會造成頁面克頓, 可以通過分頁來實現(xiàn),所以本文給大家介紹了el-select二次封裝實現(xiàn)可分頁加載數(shù)據(jù),文中有詳細的代碼講解,具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • Vue.js?rules校驗規(guī)則舉例詳解

    Vue.js?rules校驗規(guī)則舉例詳解

    Vue表單校驗規(guī)則(rules)是一種用于驗證表單數(shù)據(jù)的對象,它通常用于Vue.js框架中的表單組件中,可以在表單提交前進行數(shù)據(jù)驗證,這篇文章主要給大家介紹了關于Vue.js?rules校驗規(guī)則的相關資料,需要的朋友可以參考下
    2024-02-02
  • 一文詳解Vue3響應式原理

    一文詳解Vue3響應式原理

    這篇文章主要介紹了一文詳解Vue3響應式原理,文章通過與vue2.x?的響應式做對比詳解展現(xiàn)出了Vue3響應式原理詳情,感興趣的小伙伴可以參考一下
    2022-06-06
  • vue實現(xiàn)移動端項目多行文本溢出省略

    vue實現(xiàn)移動端項目多行文本溢出省略

    這篇文章主要介紹了vue實現(xiàn)移動端項目多行文本溢出省略功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評論

江北区| 革吉县| 客服| 平邑县| 平远县| 鲁甸县| 周至县| 金堂县| 瑞金市| 林周县| 池州市| 昌吉市| 望江县| 南江县| 克山县| 文山县| 介休市| 万州区| 马尔康县| 海城市| 渝中区| 怀仁县| 河源市| 秀山| 本溪市| 太谷县| 泽州县| 顺平县| 弋阳县| 鄂州市| 开封县| 高邮市| 罗城| 裕民县| 望谟县| 乐昌市| 罗定市| 江源县| 高台县| 通城县| 龙南县|