module构建失败(来自 ./node_modules/css-loader/dist/cjs.js):CssSyntaxError

IT技术 css reactjs webpack import css-loader
2021-05-01 10:12:09

我正在构建一个react应用程序,我在文件中导入了一个滑块

然后我得到了一个 css-loader,我也在使用 webpack

这是我的滑块 -

import React, {useState} from 'react';
import RubberSlider from '@shwilliam/react-rubber-slider';
import styles from '@shwilliam/react-rubber-slider/dist/styles.css';

export const Slider = () => {
  const [value, setValue] = useState(0.5)

  return <RubberSlider width={250} value={value} onChange={setValue} />
}

这个 ^ 将进入另一个组件并被调用

但是当我注释掉时一切都很好 -

import styles from '@shwilliam/react-rubber-slider/dist/styles.css';

但是我需要这些样式的滑块,当我运行我的 webpack 命令时,我得到这个错误 -

ERROR in ./src/index.js (./node_modules/css-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./src/index.js)
Module build failed (from ./node_modules/css-loader/dist/cjs.js):
CssSyntaxError

(1:1) /Users/eddy/Projects/Sorting-Visualizer/src/index.js Unknown word

> 1 | import React from 'react';
    | ^
  2 | import ReactDOM from "react-dom";
  3 | import App from "./App.js";

这是我的 webpack.config.js 文件 -

const path = require("path");
const config = {

    entry: "./src/index.js",
    output: {
        path: path.resolve(__dirname, "dist"),
        filename: "bundle.js",
    },

    resolve: { extensions: [".mjs", ".js", ".jsx", ".css"] },

    module: {
        rules: [
            {
                test: /\.js|jsx|.css$/,
                use: [  "style-loader", "css-loader", "babel-loader"],
                exclude: /node_modules/,
                // loader: "style-loader!css-loader"
            },

        ]
    },

}

module.exports = config;

我究竟做错了什么?谢谢!

2个回答

此错误的根本原因是 css 加载器多次编译 css 文件。检查您的 webpack 配置是否有重复的 css 加载器条目。 从 webpack.config.js 中删除 [ "style-loader", "css-loader" ] 并尝试 npx webpack 这可能会发生 css loader 在您的应用程序中间接执行的情况。

也许你在你的 index.html 中导入了样式表,同时在你的 src/index.js 中...否则 webpack 会同时编译它们......