首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么webpack不能导入PrimeReact CSS文件?

为什么webpack不能导入PrimeReact CSS文件?
EN

Stack Overflow用户
提问于 2020-02-25 15:39:01
回答 2查看 3.8K关注 0票数 1

我想在我的应用程序上使用PrimeReact DataTable。当我导入css文件时:

代码语言:javascript
复制
import "primereact/resources/themes/nova-light/theme.css";
import "primereact/resources/primereact.min.css";
import "primeicons/primeicons.css";

它抛出此错误:

代码语言:javascript
复制
ERROR in ./node_modules/primereact/resources/themes/nova-light/theme.css 1:0
Module parse failed: Unexpected character '@' (1: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
> @charset "UTF-8";
| /* open-sans-300 - latin */
| @font-face {
 @ ./src/pages/_app.js 20:0-58
 @ ./src/index.js

ERROR in ./node_modules/primeicons/primeicons.css 1:0
Module parse failed: Unexpected character '@' (1: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
> @font-face {
|     font-family: 'PrimeIcons';
|     font-display: auto;
 @ ./src/pages/_app.js 22:0-35
 @ ./src/index.js

ERROR in ./node_modules/primereact/resources/primereact.min.css 1:0
Module parse failed: Unexpected token (1: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

我对webpack.config.js做了如下调整:

代码语言:javascript
复制
var path = require("path");

module.exports = {
  module: {
    rules: [
      {
        test: /\.s[ac]ss$/i,
        exclude: [
          path.resolve("node_modules/primereact/resources/primereact.css"),
          path.resolve(
            "node_modules/primereact/resources/themes/nova-light/theme.css"
          )
        ],
        use: [
          // Creates `style` nodes from JS strings
          "style-loader",
          // Translates CSS into CommonJS
          "css-loader",
          // Compiles Sass to CSS
          "sass-loader"
        ]
      },
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  },
  externals: {
    Config: JSON.stringify(
      process.env.NODE_ENV === "production"
        ? require("./config.prod.json")
        : require("./config.dev.json")
    )
  }
};

其他类似问题的答案似乎过时了,因为这样做会抛出其他错误或同样的错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-25 15:51:56

这篇文章有解决方案:https://github.com/webpack-contrib/sass-loader/issues/344

我错过了这些装载机:

代码语言:javascript
复制
      {
    test: /\.css$/,
    use: [
      {
        loader: "css-loader"
      }
    ]
  },
  {
    test: /\.(png|gif|woff|woff2|eot|ttf|svg)$/,
    loader: "url-loader?limit=100000"
  },
票数 3
EN

Stack Overflow用户

发布于 2020-02-25 15:45:47

也许this帖子可能会回答你的问题。这是太多的复制整个答案,我相信,如果你能够访问这个网页,你将可以访问该答案。

最小可重现性答案

您需要安装es2015预置:

代码语言:javascript
复制
npm install babel-preset-es2015
and then configure babel-loader:

{
    test: /\.jsx?$/,
    loader: 'babel-loader',
    exclude: /node_modules/,
    query: {
        presets: ['es2015']
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60398256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档