webpack4使用style-loader 报window is not defined错误

配置的webpack4, 在js中引入scss文件时 页面报错 window is not defined

clipboard.png

有关的loader代码如下:

{
    test: /\.(css|scss)$/,
    use: [
      'style-loader',
      'css-loader',
      "sass-loader"
    ]
      },
      {
    test: /\.(png|svg|jpg|gif)$/,
    use: [
      'file-loader'
    ]
}

注释掉style-loader, 页面就不报错, 但没有对应的样式

阅读 3.3k
2 个回答

style-loader是将样式插入到dom内,可能是需要用到window对象。
你是在做服务端渲染的东西吗?如果是的话是因为服务端没有window对象,所以会报这个错
解决办法是用isomorphic-style-loader这个包

{
    test: /\.(css|scss)$/,
    use: [
        'isomorphic-style-loader' ,
        'css-loader',
        'sass-loader'
    ]
}

因为style-loader和 mini-css-extract-plugin 冲突,去除掉style-loader即可

=========原回答=======

我也遇到了这个问题,虽然不报错了,但是html中的link变成了<link href="[Object object]" />,如何处理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题