这个错误是因为在 Sass/SCSS 中使用 /deep/
选择器时语法不正确。在 Vue 的 <style lang="scss">
块中,/deep/
是一个特殊的 CSS 选择器,但在 SCSS 中需要特殊处理。
在 Sass(Scss)中使用 /deep/ 可能会导致语法错误,因为 /deep/ 是 Vue 单文件组件中用于穿透作用域样式的特殊选择器,并非标准的 CSS 或 Sass 语法。在较新的 Sass 版本或某些构建工具中,可能会报 expected selector 错误。
解决方案:使用兼容的穿透选择器
根据不同的 Vue 版本和构建工具,推荐使用以下替代方案:
1. 对于 Vue 2 + Sass(推荐)
使用 ::v-deep 替代 /deep/,这是 Vue 官方推荐的穿透方式,兼容性更好:
// 错误写法(会报错)
/deep/ .u-input {
color: red;
}
// 正确写法
::v-deep .u-input {
color: red;
}
2. 对于 Vue 3 + Sass
使用 :deep() 包裹选择器(Vue 3 推荐语法):
:deep(.u-input) {
color: red;
}
3. 通