webpack4 css modules
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了webpack4 css modules,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2573字,纯文字阅读大概需要4分钟。
内容图文
demo 代码点此,webpack4 中通过 css-loader 开启 css 模块化, 开始前先做点准备工作。
不了解 css 模块化的,可以前往查看github_css_modules.
## 准备工作
安装 webpack:
npm init -y
npm i -D webpack webpack-cli css-loader
创建 webpack.config.js 进行配置:
const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
main: './src/index.js'
},
module: {
rules: [
// 不在 node_modules 中的 css,开启 css modules
{
test: /\.css$/,
exclude: /node_modules/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
/* 以前版本是通过 true 开启,相关配置接着写
modules: true
localIdentName: '[name]__[local]--[hash:base64:5]'
*/
// 现在是给 modules 一个 options 对象开启
modules: {
// 重新生成的 css 类名
localIdentName: '[name]__[local]--[hash:base64:5]'
}
}
}
]
},
// 在 node_modules 中的 css,不开启
{
test: /\.css$/,
include: /node_modules/,
use: [
MiniCssExtractPlugin.loader, 'css-loader']
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: path.resolve(__dirname, './src/index.html'),
filename: 'index.html'
}),
new MiniCssExtractPlugin({
filename: '[name].[hash].css'
})
],
output: {
filename: '[name].[hash].bundle.js',
path: path.resolve(__dirname, './dist')
}
}
更多 css-loader 的配置建议前往 github_css-loader 查看,因为版本更新后,配置可能会有变。
## 编写 css
配置完 webpack,写 css 时要使用相关语法,因为是通过 webpack 打包时进行编译,重新生成新的 css 类名来防止全局变量名污染的。
注意: css modules 只针对类、Id选择器生效,不会对标签选择器进行模块化。
/* 全局样式 */
:global(.header) {
color: #696969;
background-color: #fff;
}
:global .main {
color: #363636;
background-color: #fff;
}
/* less 等预处理语言可以这样写 */
/* :global {
.footer {
color: #303030;
background-color: #fff;
}
} */
/* 局部样式 */
:local(.header) {
color: red;
background-color: #c2b1b1;
}
:local(.main) {
color: yellow;
background-color: rgb(136, 96, 96);
}
:local(.footer) {
color: blue;
background-color: #929292;
}
编译后的 css 代码:
/* 全局样式 */
.header {
color: #696969;
background-color: #fff;
}
.main {
color: #363636;
background-color: #fff;
}
/* less 等预处理语言可以这样写 */
/* :global {
.footer {
color: #303030;
background-color: #fff;
}
} */
/* 局部样式 */
.index__header--1JD7j {
color: red;
background-color: #c2b1b1;
}
.index__main--1j9-Y {
color: yellow;
background-color: rgb(136, 96, 96);
}
.index__footer--gJKjp {
color: blue;
background-color: #929292;
}
## 使用
因为 css 类名是重新编译后的,所以使用时不能直接使用原 css 类名,要通过 import 语法使用。
import styles from './index.css';
export const Header = () => {
return `
<h1 class=${styles.header}>header</h1>
`
}
在 html 里面是这样的:
<h1 class="index__header--1JD7j">header</h1>
原文:https://www.cnblogs.com/guolao/p/11830098.html
内容总结
以上是互联网集市为您收集整理的webpack4 css modules全部内容,希望文章能够帮你解决webpack4 css modules所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。