[英]Issue connecting styles.scss in React App
I am having an issue with my React App connecting style.scss file.我的 React App 连接style.scss文件有问题。 I think everything looks good to me on webpack a package.json but for some reason, it doesn't wanna works.我认为webpack和package.json对我来说一切都很好,但由于某种原因,它不想工作。
App.js:应用程序.js:
import React, { Component } from "react";
import ReactDOM from "react-dom";
import "./module.scss";
import Header from "../src/components/Header";
class App extends Component {
constructor(props) {
super(props);
}
render() {
return <Header />;
}
}
ReactDOM.render(<App />, document.getElementById("root"));
Header.js: Header.js:
import React from "react";
class Header extends React.Component {
constructor() {
super();
}
render() {
return (
<section className="header">
<div className="current-location">London</div>
<div className="time">00:00 GMT</div>
<div className="current-temp">23</div>
<div className="reloading">Reloading</div>
<div className="count-bar">seconds</div>
</section>
);
}
}
export default Header;
Webpack.js: Webpack.js:
module.exports = {
entry: './src/app.js',
output: {
path: path.resolve('dist'),
filename: 'bundle.js',
publicPath: '/',
},
module: {
rules: [
{
test: /\.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
},
{
test: /\.css$/,
loader: ['style-loader', 'css-loader'],
},
{
test: /\.s(a|c)ss$/,
loader: ['style-loader', 'css-loader', 'sass-loader'],
},
],
},
}
package.json: package.json:
"dependencies": {
"@babel/core": "^7.9.6",
"@babel/preset-env": "^7.9.6",
"@babel/preset-react": "^7.9.4",
"@webpack-cli/serve": "^0.2.0",
"babel-loader": "^8.1.0",
"body-parser": "^1.19.0",
"css-loader": "^3.5.3",
"dotenv-webpack": "^1.8.0",
"express": "^4.17.1",
"html-webpack-plugin": "^4.3.0",
"node-sass": "^4.14.1",
"promise": "^8.1.0",
"react-html-id": "^0.1.5",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"webpack": "^4.43.0",
"webpack-cli": "^3.3.11",
"webpack-dev-server": "^3.11.0"
},
"devDependencies": {
"axios": "^0.19.2",
"file-loader": "^6.0.0",
"heroku": "^7.41.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-router-dom": "^5.2.0",
"style-loader": "^1.2.1",
"url-loader": "^4.1.0"
}
Does anyone have an idea what is wrong here?有谁知道这里有什么问题? The Header is correctly rendered on App.js but I can't understand why style is not getting applied to. Header 在 App.js 上正确呈现,但我不明白为什么样式没有得到应用。 Thanks!谢谢!
Try this configuration:试试这个配置:
{
test: /\.css$/,
loader: ['style-loader', 'css-loader'],
},
{
test: /\.s(a|c)ss$/,
use: [
{
loader: 'style-loader',
},
{
loader: 'css-loader',
options: {
// Run `postcss-loader` on each CSS `@import`, do not forget that `sass-loader` compile non CSS `@import`'s into a single file
// If you need run `sass-loader` and `postcss-loader` on each CSS `@import` please set it to `2`
importLoaders: 1,
// Automatically enable css modules for files satisfying `/\.module\.\w+$/i` RegExp.
modules: { auto: true },
},
},
{
loader: 'sass-loader',
},
],
},
Try doing this:尝试这样做:
replace代替
import './module.scss'
with和
import style from './module.scss'
And use classes as variables like className={style.time}
instead of className="time"
并使用类作为变量,如className={style.time}
而不是className="time"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.