1 app.css
body{
background: red
}
.ot{
background: #fff
}
2 style.css
.ot{
font-size: 50px;
}
3 main.js引入CSS文件
import React from 'react';
import ReactDOM from 'react-dom';
import appcss from './app.css';
import stylecss from './style.css'
import 'font-awesome/css/font-awesome.css';
ReactDOM.render(
<div className={stylecss.ot}>
<i className="fa fa-rocket"></i>
<span className={appcss.ot}>React</span>
</div>,
document.getElementById("root")
);
4 配置:需要排除公共CSS,比如引入的font-awesome字体图标
module:{
rules:[
{
test: /\.css$/,
use:['style-loader',{
loader: "css-loader",
options: {
module: true,
localIdentName: "[path][name]-[local]-[hash:base64:6]"
}
}],
exclude:[
path.resolve(__dirname,"node_modules")
]
},
{
test: /\.css$/,
use:['style-loader',"css-loader"],
include:[
path.resolve(__dirname,"node_modules")
]
},
... ...
5 index.html
<html>
<head>
<title>自定义模板</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
6 测试:模块化的css和公共css都生效了
最后附上依赖:
{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "webpack",
"start": "webpack-dev-server --config webpack.config.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-react": "^6.24.1",
"css-loader": "^0.28.7",
"file-loader": "^1.1.5",
"html-webpack-plugin": "^2.30.1",
"style-loader": "^0.19.0",
"url-loader": "^0.6.2",
"webpack": "^3.5.5",
"webpack-dev-server": "^2.8.2"
},
"dependencies": {
"react": "^15.6.1",
"react-dom": "^15.6.1",
"font-awesome": "^4.7.0"
}
}