reactjs - 创建反应应用程序:sass 不能很好地识别
问题描述
我正在使用 typescript 和 sass 预处理器创建一个反应应用程序,如下所示:
// Button.tsx
import React from 'react';
import './Button.scss';
export default class Button extends React.Component {
handleClick(event : React.MouseEvent<HTMLButtonElement, MouseEvent>) {
alert("awesome");
}
render() {
return (
<button type="button" className="btn" onClick={this.handleClick}>Click me</button>
);
}
}
Button.scss:
@use "./Base" as base;
.btn {
color: #{base.$color};
background-color: base.$color;
}
和 Base.scss:
$color: red;
但产生这样的错误:
Failed to compile.
./src/Button.scss (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6-1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--5-oneOf-6-3!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-6-4!./src/Button.scss)
SassError: Invalid CSS after " color: #{base": expected expression (e.g. 1px, bold), was ".$color};"
on line 4 of D:\web\test-react-app\src\Button.scss
>> color: #{base.$color};
-----------------^
似乎 react-scripts 无法编译新的 sass 语法,如 @use、@forward 等。我不能使用 @import,因为基础将与其他组件共享,因此多次调用 @import 会导致多次Base.scss
渲染。
任何人都可以解决我上面的问题吗?
解决方案
更新:
在谷歌搜索数小时后,我得到了解决方案。我安装npm i sass
而不是nmp i node-sass
. 现在 react 应用程序支持新的 sass 语法。
推荐阅读
- microsoft-graph-api - [MS Graph]:在 MS 图形查询中处理字符串搜索中的特殊字符
- javascript - 外部javascript文件中的jinja2变量
- database - 如何比较 DbSchema 中的两个项目文件
- javascript - 相机应用程序在 Marshmallow API 23 中运行良好,但在 API grater 23 中使用相机时崩溃
- swiftui - SwiftUI fullscreen horizontal swipe with dot indicator
- java - “扫描仪无法解析为某种类型”我该如何解决?
- javascript - 动态添加后无法使用 QuerySelectorAll 检索 HTML
- javascript - 如何获取隐藏文件夹中图像的文件路径?
- javascript - 为什么对 this.data.length 的测试会失败?
- python - 如何将字符串矩阵更改为整数矩阵