Vue-阻止prerender-spa-plugin加载modernizr脚本

时间:2019-08-08 17:00:57

标签: webpack single-page-application modernizr vue-cli-3 prerender

我正在使用Vue-cli 3 + prerender-spa-plugin构建一个生产网站,但是我需要一些只能由最终用户而不是pre-spa-plugin环境加载的脚本(例如modernizr检测)

如何配置设置以使prerender-spa-plugin忽略这些脚本?

我将脚本放在索引文件中,位于公用文件夹上,如下所示:

<html>
  <head>
    <!-- Global site tag (gtag.js) - Google Analytics -->
    <!-- Facebook Pixel Code -->
  </head>
  <body>
    <div id="app"></div>
    <!-- jivochat script -->

    <script src="modernizr-webp.js"></script>

  </body>
</html>

1 个答案:

答案 0 :(得分:0)

在搜索插件问题时,我找到了一种解决方案:

vue.config.js中:

new PrerenderSPAPlugin({
  ....
  renderer:  new PrerenderSPAPlugin.PuppeteerRenderer({
     // The name of the property
      injectProperty: '__PRERENDER_INJECTED',
     // The values to have access to via `window.injectProperty` (the above property )
      inject: { foo:  'bar' }
    })
})

和应用程序代码中


if ( window.__PRERENDER_INJECTED === undefined ) {
       // The code snippet to be ignored in pre-render
}