东莞设计网站企业,成都家具企业网站建设,家电网站建设总体目标,租一个网站服务器多少钱现象#xff1a; 原因#xff1a; 该错误表明在服务端渲染 (SSR) 过程中#xff0c;有一些代码尝试在没有浏览器环境的情况下执行与浏览器相关的操作。这在服务端渲染期间是一个常见的问题#xff0c;因为在服务端渲染期间是没有浏览器 API。
解决办法#xff1a;
1. 修…现象 原因 该错误表明在服务端渲染 (SSR) 过程中有一些代码尝试在没有浏览器环境的情况下执行与浏览器相关的操作。这在服务端渲染期间是一个常见的问题因为在服务端渲染期间是没有浏览器 API。
解决办法
1. 修改原始代码 避免在组件代码中使用dom的原生api
备注组件代码是指.vue这样的程序文件它会被打包到server-bundle这样的服务端渲染js程序中运行环境是node, 所以没法识别这些dom对象的api。 而jsts文件则会打包到client-bundle的客户端渲染js程序中是使用script标签嵌入html文件中运行环境是浏览器所以不会有这个问题 2. 使用jsdom模拟浏览器环境
在ssr服务端的启动程序中加入以下代码 const jsdom require(jsdom); const { JSDOM } jsdom; const dom new JSDOM(!DOCTYPE htmlhtmlbody/body/html); global.window dom.window; global.document dom.window.document; 但注意jsdom的版本不可过高否则会报错SyntaxError: Unexpected token || 因为 || 这个新的 JavaScript 语法它是 ECMAScript 2022 中的新特性但可能在当前的 Node.js 版本中不被支持必须降低jsdom版本到兼容当前node版本的版本