scss 无法编译:root

use*_*446 0 sass webpack-2 vuejs2

文件a.scss:

$myVariable:#ffffff;
Run Code Online (Sandbox Code Playgroud)

文件b.scss:

@import './a.scss';

 //does not work
:root{
   --root-variable:$myVariable; 
}

//works
.myClass{
    color:$myVariable; 
}
Run Code Online (Sandbox Code Playgroud)

编辑器在b.scss文件中看到myVariable的值。但是在页面上编译后,如果你看一下属性,它看起来像这样:

--根变量:$myVariable

但预计:

--根变量:#ffffff

网页包:

{
  test: /\.vue$/,
  exclude: /(node_modules|bower_components)/,
  use: {
       loader: 'vue-loader',
       options: {
              loaders: {
                        scss: 'vue-style-loader!css-loader!sass-loader', // <style lang="scss">
                        sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax' // <style lang="sass">
                        }
                 }
        }


}
Run Code Online (Sandbox Code Playgroud)

如何修复它?

//UPDATE
Run Code Online (Sandbox Code Playgroud)

因为发现问题所以改了问题,但是还是不知道怎么解决

Phi*_*ord 6

对于现在遇到此问题的任何人来说,这是由于 Sass 3.5 中的更改所致,此处对此进行了解释

现在,在定义自定义 CSS 变量时使用 Sass 变量需要稍有不同。这曾经有效:

:root {
   --root-variable: $myVariable; 
}
Run Code Online (Sandbox Code Playgroud)

但现在你应该这样做:

:root {
   --root-variable: #{$myVariable}; 
}
Run Code Online (Sandbox Code Playgroud)