You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Storybook+Angular引入全局Sass样式表报SassError: expected "{"错误如何解决

问题根因

你遇到的报错核心原因是在preview.js中使用内联loader前缀引入SCSS文件,导致sass-loader错误解析了非Sass格式的JS代码。
你添加的!style-loader!css-loader!sass-loader!内联前缀会强制webpack按你指定的loader顺序处理文件,当项目(尤其是Angular项目)已经在webpack全局配置/Storybook预设中配置过Sass编译规则时,就会出现loader重复执行的问题:经过前置loader处理生成的JS代码会被再次传给sass-loader解析,Sass无法识别JS的import语法,因此抛出expected "{"的错误。

解决方案

按以下步骤调整即可:

  • 第一步:修改.storybook/preview.js中的样式引入逻辑,删除内联loader前缀,直接引入SCSS文件即可:
    // 替换之前带loader前缀的引入行
    import './scss-loader.scss'
    
  • 第二步:检查.storybook/main.js中的webpackFinal配置:
    如果你使用的是Angular版Storybook,框架预设已经内置了Sass编译支持,不需要额外配置sass-loader相关规则,可以删除自行添加的Sass loader配置避免冲突。
    如果是其他框架的项目,确保Sass相关loader的匹配规则只作用于.scss/.sass后缀的文件,没有重复配置。
  • 第三步:校验全局样式的引入路径
    确认scss-loader.scss中引入_theme.scss等全局样式文件的相对路径正确,没有拼写错误。
  • 第四步:清理缓存后重启Storybook
    删除node_modules/.cache目录,执行启动命令时添加--no-cache参数,避免旧缓存影响配置生效。

内容的提问来源于stack exchange,提问作者Domenic Schumacher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:36:05