我正在使用Webpack从头开始构建一个简单的React应用。 我终于能够运行开发服务器,并且当我尝试通过CSS应用某些样式时,文件无法加载,并且我认为Webpack 4配置不正确。
代码如下:
webpack.config.js
// const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const path = require('path');
module.exports = {
mode: 'development',
entry: ['./src/index.js'],
resolve: {
extensions: [".js", ".jsx"]
},
output: {
filename: 'main.js',
path: path.resolve(__dirname, 'dist'),
publicPath: '/dist',
},
devServer: {
contentBase: path.join(__dirname, 'dist'),
compress: true,
port: 8080
},
module: {
rules: [
{
test: /\.js|.jsx$/,
exclude: /node_modules/,
loader: "babel-loader",
options: {
presets: ["react"]
}
},
{
test: /\.css$/,
use: ["style-loader", "css-loader"]
},
{
test: /\.(png|jpg)$/,
loader: 'url-loader'
}
]
},
};
我的项目结构是这样的,我将仅包含 src ,因为它位于根目录中:
**src**
|_assets
|_componentns
|_styles
|_App.css
|_index.css
App.jsx
index.js
index.html
我希望能够为我拥有的每个组件添加多个css文件并应用它们,并能够为 index.html 设置索引样式。 非常感谢您的帮助。
答案 0 :(得分:1)
您的webpack
配置看起来不错。
确保在import
中css
个components
文件是必需的。
import "./App.css";
class App extends Component {
render() {
return (
<div>
<Child />
</div>
);
}
}
答案 1 :(得分:1)
所有您需要做的就是像使用JavaScript模型一样在需要时导入CSS文件。因此,如果您希望为整个应用程序使用样式表,则可以在index.js
中导入全局样式表。
import './styles/index.css';
您可以对具有特定样式的每个组件执行相同操作
import './styles/App.css'
在这种情况下,您可能希望setup CSS modules避免重叠类名。
答案 2 :(得分:0)
好吧,这是菜鸟的错误,我设置webpack的方法是我必须先构建它,然后运行dev服务器,而没有其他方法。 上面的所有答案都是有效和有用的,我只是忘了更改后运行构建。