mui-datatable 服务器端渲染“WebpackError:ReferenceError:未定义窗口”

Posted

技术标签:

【中文标题】mui-datatable 服务器端渲染“WebpackError:ReferenceError:未定义窗口”【英文标题】:mui-datatable server side rendering "WebpackError: ReferenceError: window is not defined" 【发布时间】:2021-12-18 10:14:34 【问题描述】:

我尝试在 build-html 阶段跳过这个包:

exports.onCreateWebpackConfig = ( stage, loaders, actions ) => 
  if (stage === "build-html") 
    actions.setWebpackConfig(
      module: 
        rules: [
          
            test: /mui-datatables/,
            use: loaders.null(),
          ,
        ],
      ,
    )
  

但后来收到了:

在以下几行:

function _inheritsLoose(subClass, superClass) 
  4 |   subClass.prototype = Object.create(superClass.prototype);
> 5 |   subClass.prototype.constructor = subClass;
    | ^
  6 |   setPrototypeOf(subClass, superClass);
  7 | 

这是通过 gatsby build 中的构建消息抛出的:

WebpackError: Minified React error #130

从版本历史来看,似乎发生了同样的问题并在 3.1.3 中得到修复,但似乎又回来了。

【问题讨论】:

【参考方案1】:

在您的代码中引用了 MUIDatatable 的任何地方,您都需要进行显式检查,直到源更新:

typeof window !== 'undefined' && <MUIDataTable
    title=""
    data=faqData
    columns=columns
    options=options
/> 

添加这些检查后,gatsby build 可以完成并且控件将在生产中工作。

【讨论】:

以上是关于mui-datatable 服务器端渲染“WebpackError:ReferenceError:未定义窗口”的主要内容,如果未能解决你的问题,请参考以下文章

检测浏览器是不是支持WebP格式? (服务器端)

MUI-DATATABLES onDownload 函数给出未定义

当渲染速度受到影响时,webp 的较小文件大小真的比 jpeg 更好吗?

关于SDWebImage加载webp格式图片异常问题

明年找到好工作:面试题打卡第四天

明年找到好工作:面试题打卡第四天