【问题标题】:Webpack 4 extract css from scss not removing the sass file from complied fileWebpack 4从scss中提取css而不是从编译文件中删除sass文件
【发布时间】:2020-04-11 16:56:41
【问题描述】:

在在这里写这个问题之前,我已经经历了很多关于 stackoverflow 和文章的问题。 我成功地使用 webpack4 创建了 CSS 文件 sass。

我有如下文件client.js,它导入scss

import React , { Component } from 'react'
import { connect } from 'react-redux';
import './jobcard.scss';

这是我的 webpack 配置。

const path = require('path');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
  entry: {
    client: './src/client.js',
  },
  output: {
    path: path.resolve(__dirname, 'asset'),
    filename: "[name].js"
  },
  module: {
    rules: [
        { 
          test: /\.js$/,
          exclude: /node_modules/,
          loader: "babel-loader"
       },
       {
        test: /\.scss$/,
        use: [
            MiniCssExtractPlugin.loader,
            "css-loader",
            "sass-loader"
          ]
       },
    ]
 },
 plugins: [
  new MiniCssExtractPlugin({
    filename: 'main.css',
  })
]

}

它成功创建了 main.css 并存储在“/asset”文件夹中。 但问题是当我使用 babel 编译 client.js 时。它在这条线的下方。

require("./jobcard.scss");

由于上面的行而中断,因为在 dist 文件夹中没有这样的 scss 文件,因为它被提取并放置在“asset”文件夹中。我希望我的 css/图像在“资产”文件夹中。

我的期望是我的最终 css 移动到现在正在发生的 '/asset' 文件夹,并且上面的行应该从已编译的 client.js 文件中删除。 所以我可以从资产位置引用我的 index.html 上的 main.css。

【问题讨论】:

    标签: javascript node.js reactjs webpack sass


    【解决方案1】:

    试试这个config 看看它是否适合你

    module: {
            rules: [{
                    test: /\.scss$/,
                    use: [
                        'style-loader',
                        MiniCssExtractPlugin.loader,
                        {
                            loader: "css-loader",
                            options: {
                                minimize: true,
                                sourceMap: true
                            }
                        },
                        {
                            loader: "sass-loader"
                        }
                    ]
                }
            ]
        }
    

    【讨论】:

    • 谢谢@Tony,它不起作用,我试过了......同样的问题仍然存在
    猜你喜欢
    • 2018-01-21
    • 2018-10-27
    • 2016-02-11
    • 2019-06-15
    • 2019-04-17
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2016-07-26
    相关资源
    最近更新 更多