ts使用cssmodel方式引入scss报红
时间: 2023-07-04 14:19:01 浏览: 191
在 TypeScript 中使用 CSS Modules 引入 SCSS 文件时,如果出现报错,可能是因为 TypeScript 默认不支持 SCSS 文件的解析,需要安装相应的 loader 来解析 SCSS 文件。
您可以使用 `css-loader` 和 `sass-loader` 来解析 SCSS 文件,然后使用 `typings-for-css-modules-loader` 来生成相应的 CSS 类型声明。以下是一个示例 `webpack` 配置:
```js
module.exports = {
// ...
module: {
rules: [
{
test: /\.scss$/,
use: [
{
loader: "style-loader"
},
{
loader: "css-modules-typescript-loader"
},
{
loader: "css-loader",
options: {
modules: {
localIdentName: "[name]__[local]__[hash:base64:5]"
}
}
},
{
loader: "sass-loader"
}
]
}
]
}
};
```
这里使用 `css-modules-typescript-loader` 来生成 CSS 类型声明,然后在 TypeScript 中使用 `import` 引入 SCSS 文件,并通过 `import styles from './styles.scss'` 的方式获取 CSS 类名,如:
```ts
import * as React from 'react';
import * as styles from './styles.scss';
interface Props {}
const MyComponent: React.FC<Props> = () => {
return <div className={styles.container}>Hello, world!</div>;
};
export default MyComponent;
```
对于以上代码,`container` 类名的类型声明将由 `css-modules-typescript-loader` 自动生成。如果仍然出现报错,您可以尝试清除编译缓存或重启开发服务器。
阅读全文