我正在使用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>
答案 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
}