css - 无法在 webpack 4 中加载 css 文件

标签 css webpack css-loader webpack-4

给定以下 webpack 4 配置:

const path = require('path')
const webpack = require('webpack')
const MiniCssExtractPlugin = require("mini-css-extract-plugin")
const devMode = process.env.NODE_ENV !== 'production'
const devFlagPlugin = new webpack.DefinePlugin({
  __DEV__: JSON.stringify(JSON.parse(process.env.DEBUG || 'false'))
})

module.exports = {
    mode: "development",
    entry: [
        'webpack-dev-server/client?http://0.0.0.0:3000',
        'webpack/hot/only-dev-server',
        "./app/app.js"
    ],
    output: {
        path: path.join(__dirname, "build"),
        filename: "bundle.js"
    },
    devtool: 'eval-source-map',
    resolve: {
        extensions: ['.js', '.jsx']
    },
    module: {
        rules: [
            { 
                test: /\.jsx|\.js?$/, 
                loader: 'babel-loader',
                options: {
                    plugins: [
                        'react-hot-loader/babel'
                    ]
                },
                exclude: /node_modules/},
            {
                test: /\.jsx|\.js$/,
                exclude: /node_modules/,
                use: [
                'babel-loader?' + JSON.stringify({presets: ['env', 'react']}),
                {
                    loader: 'eslint-loader'
                }]
            },
            {
                test: /\.css$/,
                include: /stylesheets|node_modules/,
                use: [ MiniCssExtractPlugin.loader, 'css-loader' ]
            },
            {
                test: /\.scss$/,
                include: /stylesheets/,
                use: [ MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader' ]
            },
            {
                test: /\.(jpg|png|gif|eot|woff|ttf|svg)/,
                loader: "file"
            }
        ]
    },
    devServer: {
        contentBase: "./build",
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename: "[name].css",
            chunkFilename: "[id].css"
        }),
        devFlagPlugin,
        new webpack.NoEmitOnErrorsPlugin()
    ]

};

我正在尝试从 app.js 中的/stylesheets/app.css 加载一个 css 文件:

require('./stylesheets/app.css')
let routes = (
    <div className="app">
        <Router>
            <div>hello</div>
        </Router>
    </div>
)

render(routes, document.getElementById('root'))

app.css 文件定义为:

html {
    font-family: "Open Sans",Arial,sans-serif;
    font-size: 20px;
    height: 100%;
}

但是当我启动程序时:

webpack-dev-server --host 0.0.0.0 --port 3000 --hot --progress --colors

内容没有与之关联的样式。

我是否遗漏了 webpack 配置中的任何内容?

最佳答案

如果其他人遇到同样的问题,这里是 css/scss 加载器的正确配置:

{
    test: /\.css$/,
    include: /stylesheets|node_modules/,
    use: ["style-loader", "css-loader"]
},
{
    test: /\.scss$/,
    include: /stylesheets/,
    use: [ 'style-loader', 'css-loader', 'sass-loader' ]
}

没有使用 MiniCssExtractPlugin.loader;它仅用作插件。

关于css - 无法在 webpack 4 中加载 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51118656/

相关文章:

css - 在 webpack 中加载 css 文件时出错

webpack:新的 css-loader 4.0.0 尝试加载字体(使它们嵌入);如何禁用这个?

html - 如何更改特定ID下类的CSS

javascript - 使用来自javascript的if语句控制html中的div位置

CSS不适用于Wordpress中受密码保护的页面

javascript - 确保尽早评估某一行代码

html - 如何使用 flexbox HTML 将卡片并排放置?

javascript - 如何使用 MiniCssExtractPlugin 控制 CSS 的顺序?

javascript - Webpack react 热加载器不工作

Webpack 将 CSS 加载到单独的 &lt;style&gt; 标签中