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

SCSS多文件变量引用疑问:为何c.scss无法调用a.scss的$color变量

如何在c.scss中引用a.scss里的$color变量?

当然可以,但你得搞清楚SCSS @use 规则的核心特性——它是模块化的导入方式,默认不会把依赖模块的变量透传给上层引用的文件。你现在的情况是:b.scss用@use a as *引入了a的变量,但这些变量只会在b.scss内部生效,不会自动暴露给引用b.scss的c.scss,所以c里直接用$color才会报“variable undefined”错误。

解决办法有几种,选适合你的场景即可:

  • 直接在c.scss里引入a.scss:在c.scss开头加@use 'a' as *;,这样就能直接调用$color,不用通过b.scss中转。
  • 让b.scss转发a.scss的变量:在b.scss里添加@forward 'a' as *;(或者用@forward 'a' show $color;只导出需要的变量,更严谨),这样当c.scss用@use b as *引入时,就能拿到a里的$color了。
  • 在b.scss里重新导出变量:因为b.scss已经能拿到a的$color,可以在b.scss里加一行$color: $color;,把变量重新声明导出,这样c.scss引入b后也能使用这个变量。

内容的提问来源于stack exchange,提问作者yu hao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:20:59