SCSS/CSS文件名前是否应加下划线?@use与@import相关疑问
SCSS局部文件与@use常见问题解析
1. 「使用@use引入下划线开头的文件时,该文件不会被编译为CSS文件」是否正确?
正确。根据Sass官方定义,以下划线(_)开头的文件属于局部文件,这类文件的定位就是作为可复用的模块被其他文件引入,本身不会被单独编译为独立的CSS输出文件——不管是用新的@use还是旧的@import语法引入,这个规则都适用。
2. 是否应该避免给文件名加下划线?
没有强制要求必须避免,是否使用下划线主要取决于团队规范和个人偏好,反对使用下划线的常见理由包括:
- 风格一致性问题:部分开发者认为下划线会让项目中文件名风格割裂(区分局部/非局部文件),显得不够整洁统一。
- 工具链替代方案:当下很多构建工具(如Webpack、Vite的Sass插件)支持通过配置指定模块文件,无需依赖下划线标识,开发者觉得下划线是冗余的规则。
- 操作冗余感:有些开发者觉得创建局部文件时额外加下划线是没必要的操作,更倾向于通过引入方式区分模块与独立编译文件。
但下划线命名也有不可忽视的优势:
- 直观性:无需查看配置或代码,一眼就能识别出哪些是仅用于引入的局部模块,哪些是会被单独编译的入口文件,在无统一构建配置的项目中能有效减少误编译。
- 兼容性:如果项目从
@import语法迁移而来,下划线命名规则已被团队熟悉,继续使用能保持历史一致性。
3. 使用@use时是否仍存在相关问题?
@use替代@import后,下划线局部文件的核心规则(不单独编译)依然有效,不存在语法层面的冲突,但可能遇到一些场景化的小问题:
- 人为误编译风险:虽然Sass默认不会编译下划线文件,但如果手动将其设为构建工具的编译入口,依然会生成对应的CSS文件——这属于操作失误,并非
@use本身的问题。 - 命名空间的小困扰:用
@use '_buttons'引入时,若不指定别名,引用模块内容时会带上下划线前缀(如_buttons.btn-primary),显得不够简洁,但可以通过@use '_buttons' as buttons重命名解决。
内容的提问来源于stack exchange,提问作者hahyeon-cho
相关产品推荐
相关产品推荐

