ite怎么配置css让文件名不以.module.css也可以实现css模块化
时间: 2023-06-25 19:06:09 浏览: 55
如果你不想使用`.module.css`作为 CSS 模块化的文件后缀,可以按照以下步骤进行配置:
1. 在 `next.config.js` 文件中添加以下代码:
```javascript
const path = require('path');
module.exports = {
webpack: (config, { isServer }) => {
// Exclude global styles from being treated as CSS modules
config.module.rules.push({
test: /\.css$/i,
exclude: path.resolve(__dirname, 'styles'),
use: [
isServer ? require('next/dist/compiled/css-loader').server : require('style-loader'),
'css-loader'
]
});
// Include only global styles for being treated as CSS modules
config.module.rules.push({
test: /\.module\.css$/i,
include: path.resolve(__dirname, 'styles'),
use: [
isServer ? require('next/dist/compiled/css-loader').server : require('style-loader'),
{
loader: 'css-loader',
options: {
modules: true,
localIdentName: '[local]__[hash:base64:5]'
}
}
]
});
return config;
}
};
```
在这个配置中,我们使用了 `exclude` 和 `include` 来区分全局样式和模块化样式。其中,`exclude` 表示排除所有不以 `.module.css` 结尾的文件,而 `include` 表示只包含以 `.module.css` 结尾的文件。
2. 在 `styles` 目录下创建你的 CSS 文件,不需要添加 `.module.css` 后缀。
3. 在组件中引入样式,使用常规的 `import` 语句即可。
```javascript
import styles from '../styles/mystyle.css';
function MyComponent() {
return (
<div className={styles.myClass}>Hello, world!</div>
);
}
```
这样就可以在 Next.js 中使用自定义文件后缀来实现 CSS 模块化了。