Sass使用@use规则时指定正确路径仍报找不到样式表导入错误的原因
检查文件扩展名是否写对
Sass虽然支持省略扩展名,但部分构建工具(比如Vite、Webpack的特定配置)会严格要求必须指定.scss或.sass。比如你写@use './variables',实际文件是variables.scss,试试补全扩展名:@use './variables.scss',说不定就能识别。确认构建工具的Sass加载路径配置
如果你用Webpack、Vite这类工具,得检查Sass的includePaths配置有没有包含样式文件所在的目录。比如Webpack的sass-loader配置里,要把你的样式根目录加进去,这样Sass能全局检索这些目录下的文件:module.exports = { module: { rules: [ { test: /\.scss$/, use: [ 'style-loader', 'css-loader', { loader: 'sass-loader', options: { sassOptions: { includePaths: ['./src/styles'], // 替换成你的样式目录路径 }, }, }, ], }, ], }, };别搞混相对路径的基准目录
@use的相对路径是以当前文件所在目录为基准,不是项目根目录。比如当前文件在src/components/button.scss,要引入src/styles/variables.scss,得写@use '../styles/variables',而不是@use '/src/styles/variables'(除非你配置了根路径别名)。注意文件名大小写(针对Linux/macOS用户)
这类系统的文件名是区分大小写的,如果你写@use './Variables',但实际文件是variables.scss,肯定会找不到。仔细核对文件名和引入时的大小写,必须完全一致。清理缓存后重新编译
有些构建工具会缓存编译结果,哪怕你改了路径或文件名,旧缓存还在拖后腿。试试删掉项目里的node_modules/.cache目录,或者直接重启构建服务,再重新编译试试。排查符号链接问题
如果你的样式文件在符号链接(Symlink)目录下,部分Sass编译器可能解析不了路径。可以先把文件复制到普通目录下测试,要是能正常引入,就是符号链接的锅。
内容的提问来源于stack exchange,提问作者Lemuel Lacanlale

