尝试使用新的@use语法在create react应用程序中使用sass模块,但收到错误

尝试使用新的@use语法在create react应用程序中使用sass模块,但收到错误,sass,Sass,我已经安装了最新的节点sass,scss文件在我使用@use之前可以正常工作。我在/shared/tokens/文件夹中有一个_tokens.scss文件。在_tokens.scss中,我有: $colorwhite: #ffffff; 在我的根文件夹中,我的App.scss如下所示: @use "shared/tokens/tokens"; .App-header { color: tokens.$colorwhite; } 但我得到了这个错误: ./src/App.scss (./

我已经安装了最新的节点sass,scss文件在我使用@use之前可以正常工作。我在/shared/tokens/文件夹中有一个_tokens.scss文件。在_tokens.scss中,我有:

$colorwhite: #ffffff;
在我的根文件夹中,我的App.scss如下所示:

@use "shared/tokens/tokens";

.App-header {
  color: tokens.$colorwhite;
}
但我得到了这个错误:

./src/App.scss (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-5-1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--6-oneOf-5-3!./node_modules/sass-loader/dist/cjs.js??ref--6-oneOf-5-4!./src/App.scss)
SassError: Invalid CSS after "  color: tokens": expected expression (e.g. 1px, bold), was ".$colorwhite;"
        on line 26 of /Users/xxx/src/App.scss
>>   color: tokens.$colorwhite;
有什么想法吗


编辑:它可以与
@import
配合使用。我也尝试了
@use。。。与*
一样,但不能使用。

该规则目前仅受Dart Sass支持。您应该改为使用。

您可以通过利用
包别名切换到Dart Sass。我想这在
纱线下不起作用

首先删除当前的
节点sass
pkg,然后运行:

npm安装节点-sass@npm:sass

您可以使用
sass
中的全部功能,但需要注意一些

  • 检查行为差异
  • 性能度量表明
    dart sass
    节点sass

如果你真的想使用
Sass

提供的这些功能,这一切都取决于你,这在这里是一个有效的选择。谢谢-我一秒钟前发现了这一点,回来更新这个问题,因为我在文档中没有看到它。我查看了sass软件包,认为节点sass更受欢迎,性能也更高,因此我将继续使用
@import
,直到节点sass支持
@use
。你不是唯一一个一开始没有看到它的人,在文档中,兼容性不是很明显……使用
react脚本:3.4.3