2016-04-08 13 views
0

In meinem Reagieren Projekt zu importieren, ich dieses Juwel bin mit einem Armaturenbrett für die Erstellung von: https://github.com/luqin/react-icheckFehler eines Moduls CSS-Datei

ich ihr erstes Beispiel in meinem Code eingefügt kopieren.

Auf der Github Seite, heißt es mir Import sollte die css wie diese:

import 'icheck/skins/all.css'; // or single skin css 

Wenn ich das tun, erhalte ich die Fehlermeldung:

ERROR in ./~/icheck/skins/all.css 
Module parse failed: node_modules/icheck/skins/all.css Line 3: Unexpected token ILLEGAL 
You may need an appropriate loader to handle this file type. 
| /* iCheck plugin skins 
| ----------------------------------- */ 
| @import url("minimal/_all.css"); 
| /* 
| @import url("minimal/minimal.css"); 

Wenn stattdessen ich den Import tun wie folgt:

import 'icheck'; 

Es gibt keinen Fehler mehr, aber die Seite hat keinen chec kbox.

Also wie kann ich diesen Import richtig machen?

Ich habe auch versucht mit style-loader so sieht mein Code wie folgt aus:

import React from 'react'; 
import {Checkbox, Radio} from 'react-icheck'; 
import 'icheck'; 
require("style!raw!icheck/skins/all.css"); 

var Criteria = React.createClass({ 

    getInitialState: function() { 
    return {showGallery: false, showOtherCriteria: false}; 
    }, 

    toggleShowGallery: function() { 
    this.setState({showGallery: !this.state.showGallery}); 
    }, 

    toggleShowOtherCriteria: function() { 
    this.setState({showOtherCriteria: !this.state.showOtherCriteria}); 
    }, 

    render: function() { 
    return (
     <div> 

     <div onClick={this.toggleShowOtherCriteria} className="btn-group" role="group" aria-label="..."> 
      <button type="button" className="btn btn-default">Cold</button> 
     </div> 

     {style.use()} 
     {this.state.showOtherCriteria 
      ? 

      <div onClick={this.toggleShowGallery} id="channels" className="span12"> 

      <Checkbox 
       checkboxClass="icheckbox_square-blue" 
       increaseArea="20%" 
       label="Checkbox" 
      /> 

      <Checkbox 
       id="checkbox1" 
       checkboxClass="icheckbox_square-blue" 
       increaseArea="20%" 
      /> 
      <label for="checkbox1">First name</label> 

      <Radio 
       name="aa" 
       radioClass="iradio_square-blue" 
       increaseArea="20%" 
       label="Radio" 
      /> 


      </div> 
      : 
      null 
     } 
     {style.unuse()} 

     </div> 
    ); 
    } 
}); 

module.exports = Criteria; 

Aber jetzt erhalte ich:

Module not found: Error: Cannot resolve module 'raw' 

Wie könnte ich style-loader richtig zu nutzen?

+1

Wenn Sie webpack verwenden, müssen Sie 'Stil-loader' und' css-loader ' – Kujira

+0

Ich habe meinen Code aktualisiert, um' style-loader' zu verwenden. – octavian

+0

benötigen Sie 'webpack.config.js', um Webpack Loader zu konfigurieren und zu verwenden. – Kujira

Antwort

1

In Ihrem webpack Abschnitt Config-loader

module: { 
    loaders: [ 
     { 
     test  : /\.scss$/, 
     include : path.join(__dirname, 'sass'), 
     loaders : ["style", "css?sourceMap", "sass?sourceMap"] 
     } 
    ] 
    } 

diesen Code hinzufügen, indem Sie drei Ladern nämlich hinzugefügt haben (Stil, CSS und sass).

Diese drei Ladern führen folgende Operationen

  • Ihre SCSS Dateien in Klar CSS mit dem sass loader Drehen
  • Resolve alle Importe und url (...) s in der CSS mit Hilfe von CSS loader
  • diese Stile in die Seite mit dem Lader Stil

benötigen dann Ihre CSS-Datei aus dem Einstiegspunkt Ihrer Anwendung zB Legen app.js

require('app.scss'); 

Edit: Wenn Sie nicht sass verwenden, dann tun Sie sass loader nicht benötigen, auch müssen Sie test:/\.css$/

+0

Ich habe den Loader hinzugefügt und habe ihn in 'index.jsx' (die Hauptkomponente' jsx') eingefügt: 'require (" icheck/skins/all.css ");' Jetzt bekomme ich: 'ERROR in ./~ /icheck/skins/all.css Modulanalyse fehlgeschlagen: node_modules/icheck/skins/all.css Zeile 3: Unerwartetes Token ILLEGAL Möglicherweise benötigen Sie einen geeigneten Loader, um diesen Dateityp zu verarbeiten.' – octavian

+0

Haben Sie sie als Abhängigkeit innerhalb hinzugefügt 'package.json' und installierte diese loader über' npm install'? – WitVault

+0

Ja, ich habe die Pakete installiert und die Abhängigkeiten hinzugefügt. – octavian

1

webpack in Ihre devDependencies in package.jsonnpm i css-loader style-loader mit ändern. Danach fügen Sie die css-loader und style-loader zu Ihrer Liste der Lader in webpack.config.js hinzu.Probe

module.exports = { 
    module: { 
    loaders: [{ 
     test: /\.css?$/, 
     loaders: ['style', 'css'] 
    }] 
    } 
} 

Sobald Sie die Loader Config hinzugefügt haben, können Sie Ihre CSS-Dateien in Sie Komponenten importieren können

+0

Ich habe diesen Loader zum Code hinzugefügt. Jetzt bekomme ich: "Zeile 1: Unerwartetes Token ILLEGAL Sie benötigen möglicherweise einen geeigneten Loader, um diesen Dateityp zu verarbeiten. (Quellcode ausgelassen für diese Binärdatei) @ ./~/css-loader!./~/icheck/skins/polaris/polaris.css 6: 1430-1457' – octavian

+0

Ich habe die Loader-Namen aktualisiert. Kannst du es mit dem aktualisierten versuchen? –

+0

Es ist die gleiche Meldung, aber der Fehler erscheint jetzt in 'ERROR in./~/Icheck/skins/flat/purple @ 2x.png' – octavian

Verwandte Themen