使用 create-react-app 创建的 React TypeScript 项目,如何以 Module 的形式引入 css 呢?
正常情况可以这样引入:
import './index.scss';
但是像下面这样:
import styles from './index.scss';
就会报错:
TS2307: Cannot find module './index.scss' or its corresponding type declarations.
意思差不多是找不到该模块。
理论上 React 默认是支持 sass / scss 的啊,也没错,因为第一种方式是可行的,只不过不支持以模块的形式引入。
/src
目录有一个 react-app-env.d.ts
文件,添加如下代码:
declare module '*.module.css' { const classes: { readonly key: string: string } export default classes } declare module '*.module.sass' { const classes: { readonly key: string: string } export default classes } declare module '*.module.scss' { const classes: { readonly key: string: string } export default classes }
这样就支持 *.css
、*.sass
、*.scss
格式文件以模块形式引入了。
import styles from './index.module.scss';
注意这里需要带 .module
,不然会不生效。type-scss.d.ts
文件,将上面的代码复制进去,然后在 tsconfig.json
中 include
。
/// tsconfig.json
{ // ... "include": "src", "type-scss.d.ts" // 配置的 css.d.ts文件 }-o
或者 --outDir
指定文件夹
tcm -o dist src (your project root) - src/ | myStyle.css - dist/ | myStyle.css.d.ts created
-w
或者 --watch
,监视项目输入目录中的文件,修改后会自动编译。
-c
或者 --camelCase
,自动将 some-component
转换成驼峰发形式 SomeComponent
:
.SomeComponent { height: 10px; }
一般使用以下命令就可以:
tcm src -w -c未经允许不得转载:w3h5 » create-react-app创建的项目使用css-module问题整理