You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Webpack加载react-datetime-range-picker的CSS文件报错问题?

问题:react-datetime-range-picker组件CSS文件解析失败

使用react-datetime-range-picker组件时,出现模块解析错误,提示无合适loader处理CSS文件。已安装style-loader和css-loader,且webpack.config.js中配置了相关规则,但错误仍指向node_modules中的组件style.css文件,需修复该问题。

完整错误信息

javascript modules 6.14 KiB 
./src/pages/Campaign/CampaignNew.js 2.39 KiB [built] 
./node_modules/react-datetime-range-picker/dist/style.css 3.75 KiB [built] [1 error] 
ERROR in ./node_modules/react-datetime-range-picker/dist/style.css 5:0 
Module parse failed: Unexpected token (5:0)  
You may need an appropriate loader to handle this file type, currently no loaders are configured
to process this file. See https://webpack.js.org/concepts#loaders   
|  */ 
|  
> .rdt {
|   position: relative; 
| }  
@ ./node_modules/react-datetime-range-picker/dist/index.js 27:0-22  
@ ./src/pages/Campaign/CampaignNew.js 3:0-62 
@ ./src/App.js 6:0-55 16:46-57  
@ ./src/index.js 1:0-24 

当前webpack.config.js配置

const path = require("path");
const webpack = require("webpack");
require('dotenv').config({path: './.env'});

module.exports = {
  entry: "./src/index.js",
  output: {
    path: path.resolve(__dirname, "./static/app_chat/js"),
    filename: "[name].js",
  },
  module: {
    rules: [
      {
        test: /\.(jsx|js)$/,
        exclude: /node_modules/,
        use: "babel-loader",
      },
      {
        test: /\.(sass|scss|css)$/,
        exclude: /node_modules/,
        use: ["style-loader", "css-loader"],
      },
    ],
  },
  optimization: {
    minimize: true,
  },
  plugins: [
    new webpack.DefinePlugin({
      'process.env': JSON.stringify(process.env),
    }),
  ],
};

package.json依赖

{
  "name": "app_chat",
  "version": "1.0.0",
  "description": "",
  "main": "webpack.config.js",
  "scripts": {
    "dev": "webpack --mode development --watch",
    "build": "webpack --mode production"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@babel/core": "^7.20.12",
    "@babel/preset-env": "^7.20.2",
    "@babel/preset-react": "^7.18.6",
    "axios": "^1.2.4",
    "babel-loader": "^9.1.2",
    "dotenv": "^16.0.3",
    "react": "^18.2.0",
    "react-datetime": "^3.2.0",
    "react-datetime-range-picker": "^3.0.0",
    "react-dom": "^18.2.0",
    "react-router-dom": "^6.7.0",
    "react-switch": "^7.0.0",
    "webpack": "^5.75.0",
    "webpack-cli": "^5.0.1"
  },
  "devDependencies": {
    "css-loader": "^6.7.3",
    "style-loader": "^3.3.1"
  }
}

解决方案

问题根源

webpack的CSS规则中设置了exclude: /node_modules/,会忽略所有node_modules目录下的CSS文件,而react-datetime-range-picker组件的样式文件正位于该目录下,导致webpack无法找到对应的loader处理它,从而抛出解析错误。

修复方案(二选一)

方案1:移除CSS规则的exclude配置(简单直接)

修改webpack.config.js中的CSS规则,去掉exclude: /node_modules/,让loader处理所有CSS文件(包括node_modules内的):

{
  test: /\.(sass|scss|css)$/,
  use: ["style-loader", "css-loader"],
}

方案2:仅处理react-datetime-range-picker的CSS文件(更精准)

如果不想处理所有node_modules的CSS文件,可以修改exclude规则,排除除react-datetime-range-picker之外的node_modules内容:

{
  test: /\.(sass|scss|css)$/,
  exclude: /node_modules(?!\/react-datetime-range-picker)/,
  use: ["style-loader", "css-loader"],
}

修改后验证

保存webpack配置文件,重新执行构建命令(npm run dev或npm run build),错误即可消除。


内容的提问来源于stack exchange,提问作者Anonymous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:30:50