根据Dan Abramov的推文,create-react-app (CRA) 中提供了 CSS module支持。人们只需要扩展module.css
他的样式表即可启用该功能,但这对我不起作用。我有 1.1.4 版的react-scripts
. 如何使用 CRA 启用 css module?谢谢
如何在 create-react-app 中使用 css module?
您不需要弹出。
从版本 2 开始,Create React App 支持开箱即用的 CSS module。
升级到最新的 ( react-scripts@latest
)版本。
如果您使用纱线:
yarn upgrade react-scripts@latest
如果你使用 npm:
npm install --save react-scripts@latest
然后你只需要创建一个带有扩展名的文件 .module.css
例如:
.myStyle {
color: #fff
}
然后你可以像这样使用它:
import React from 'react'
import styles from './mycssmodule.module.css'
export default () => <div className={styles.myStyle}>We are styled!</div>
要在您的应用程序中启用 CSS module,您无需弹出 create-react-app。您可以按照此链接中描述的这些简单步骤在您的项目中使用 CSS module。
但是如果你弹出了你的 create-react-app,那么你必须找到名为的文件
“webpack.config.js”
打开此文件并在第 1 行中找到此 {test:cssRegex....etc}。391 并替换此更改:
{
test: cssRegex,
exclude: cssModuleRegex,
use: getStyleLoaders({
importLoaders: 1,
modules: true,
localIdentName: '[name]__[local]__[hash:base64:5]'
}),
},
打开 .js 文件并像这样导入语句
import cssStyleClassName from './MyApp.css';
然后这个导入语句允许你像这样在组件标签中做以下更改
<div className={cssStyleClassName.styleName}></div>
styleName 是您在 MyAppStyle.css 文件中定义的内容
.styleName{
your properties here...
}
弹出您的应用程序后,您必须重新启动本地服务器,有时更改不会得到反映。
注意在早期版本中,分别为生产和开发生成了两个文件。现在在当前版本中,您需要关注更改的名为“webpack.config.js”的文件。谢谢你。
我正在使用的3.4.1
版本react-scripts
所以这是我的方法
- 运行命令:
npm run eject
2.然后你会得到一个配置文件,在那个打开webpack.config.js
- 并搜索
test: cssRegex
或只是搜索cssRegex
- 现在你会看到这样的:
test: cssRegex,
exclude: cssModuleRegex,
use: getStyleLoaders({
importLoaders: 1,
sourceMap: isEnvProduction && shouldUseSourceMap,
}),
现在importLoaders:1,
添加后modules:true,
,只是save
文件。5.现在您可以使用重新启动服务器npm start
,您将看到您的样式应用。(如果您已经知道如何使用它们)
在这里,当我使用时, [name]__[local]__[hash:base64:5]
因为我遇到了一个错误
- options has an unknown property 'localIdentName'. These properties are valid:
object { url?, import?, modules?, sourceMap?, importLoaders?, localsConvention?, onlyLocals?, esModule? }
所以我删除了它,我只是使用它,它对我有用modules:true
。
您使用的是 1.1.4 版本,因此默认情况下 CSS Modules 不起作用......高于 2.0 版,它通过将 css 文件名更改为 name.module.css 来默认工作。