使用Webpack 4在React项目中添加CSS文件

时间:2019-01-30 06:47:52

标签: reactjs webpack webpack-4

我正在使用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 设置索引样式。 非常感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

您的webpack配置看起来不错。 确保在importcsscomponents文件是必需的。

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服务器,而没有其他方法。 上面的所有答案都是有效和有用的,我只是忘了更改后运行构建。