当前位置: 首页 > 面试题库 >

如何将CSS文件导入到Component .jsx文件中

淳于思淼
2023-03-14
问题内容

我正在尝试像这样使用react-day-pickers组件,但是我不知道如何导入.css文件,并且不断收到错误:

Module parse failed:

/Users/qliu/Documents/workspace/AppNexus/pricing_ui/contract-ui/app_contract-ui/node_modules/react-day-picker/lib/style.css Unexpected token (3:0)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (3:0)

我已经"css-loader": "^0.19.0",安装了package.json,这是我的Calender.jsx文件:

import React from "react";
import DayPicker, { DateUtils } from "react-day-picker";

import "../../../node_modules/react-day-picker/lib/style.css"; // <==== ERROR ON THIS LINE

export default class Calender extends React.Component {

  state = {
    selectedDay: null
  };

  handleDayClick(e, day, modifiers) {
    if (modifiers.indexOf("disabled") > -1) {
      console.log("User clicked a disabled day.");
      return;
    }
    this.setState({
      selectedDay: day
    });
  }

  render() {

    // Add the `selected` modifier to the cell of the clicked day
    const modifiers = {
      disabled: DateUtils.isPastDay,
      selected: day => DateUtils.isSameDay(this.state.selectedDay, day)
    };

    return <DayPicker enableOutsideDays modifiers={ modifiers } onDayClick={ this.handleDayClick.bind(this) } />;
  }
}

这是我的webpack.config.js:

var path = require('path');
var webpack = require('webpack');
var settings = require('./src/server/config/settings');
var LessPluginAutoPrefix = require('less-plugin-autoprefix');

module.exports = {
    devtool: '#source-map',
    resolve: {
        extensions: ['', '.jsx', '.js']
    },
    entry: [
        'webpack-hot-middleware/client',
        './src/client/index.jsx'
    ],
    externals: {
        'react': 'React',
        'react-dom': 'ReactDOM',

        // to avoid duplicate import of React with react-addons-css-transition-group
        './React': 'React',
        './ReactDOM': 'ReactDOM',
        config: 'config'
    },
    output: {
        path: path.join(__dirname, 'public'),
        filename: 'bundle.js',
        publicPath: '/'
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new webpack.NoErrorsPlugin()
    ],
    lessLoader: {
        lessPlugins: [
            new LessPluginAutoPrefix({ browsers: ['last 2 versions'] })
        ]
    },
    module: {
        loaders: [{
            test: /\.(js|jsx)$/,
            loaders: ['babel'],
            exclude: /node_modules/
        },
        {
            test: /\.less$/,
            loader: 'style!css!less'
        },
        {
            test: /\.json$/,
            loader: 'json-loader'
        }]
    }
};

问题答案:

您如何编译呢?如果是webpack,则可能需要引入样式加载器,并module.loaders在webpack配置中的数组中包含以下内容:

{
  test: /\.css$/,
  loader: "style!css"
}

更新
:现在提供了webpack.config.js,我们可以确认它需要在module.loaders数组中进行更改。OP使用较少的加载程序,仅检查.less文件,因此确切的加载程序对象应为:

{
  test: /\.(less|css)$/,
  loader: 'style!css!less'
}

如@QLiu所建议。好像有人来​​导入.css文件时出错一样,这很可能就是他们所需要的。



 类似资料:
  • 问题内容: 可以将.css文件导入.less文件…吗? 我对较少的内容非常熟悉,并将其用于我的所有开发。我经常使用如下结构: 所有导入文件都是其他.less文件,并且可以正常运行。 我当前的问题是:我想将.css文件导入.less,以引用.css文件中使用的样式,如下所示: .css文件包含一个名为的类,但是当我尝试编译.less文件时,出现错误 .less文件不会导入.css文件,仅导入其他.l

  • 我创建了一个csr文件,并将该文件发送给我的证书团队,他们给出了链cer(内部singed certificate)文件,我试图使用Ikeyman接收cer文件,但它不允许我接收,我使用了keytool命令 keytool-import-trustcacerts-alias dev-file test.cer-keystore key.jks

  • 问题内容: 我正在使用Angular Maps构建地图应用程序,并希望导入JSON文件作为定义位置的标记列表。我希望将此JSON文件用作app.component.ts中的marker []数组。而不是在TypeScript文件中定义标记的硬编码数组。 导入此JSON文件以在我的项目中使用的最佳过程是什么?任何方向都非常感谢! 问题答案: 直到最近的打字稿更新之前,Aonepathan的单行代码都

  • 我将node.js API用于: 当我尝试将任何文件导入到条目文件-中时,就会出现此问题: 这将引发一个错误: “未找到模块:错误:无法解析”/srv/git/ditsmod/ditsmod/packages/openapi/src/swagger-ui“中的”./swagger.config“” 但是文件实际上与存在于同一个目录中。 我做错了什么,如何导入一些文件到入口文件为webpack?

  • 问题内容: 我想将CSS文件导入React组件。 我已经尝试过,但是下面出现错误; 找不到模块:错误:无法解析c:\ Users \ User \ User \ Documents \ pizza-app \ client \ src \ components @中的“文件”或“目录” ../../../public/styles/disabledLink。 /client/src/compone

  • 我想在括号中创建一个json文件,只存储一个有200个元素的数组,我想能够将该文件导入到我的“main.js”文件中,并且能够使用它,即使数组本身已经不在“main.js”了。 我该怎么做?