Comment faire pour importer des modules CSS avec des caractères d'imprimerie, de Réagir et de Webpack
Comment faire pour importer des modules CSS en caractères d'imprimerie avec Webpack?
- Générer (ou auto-générer)
.d.ts
fichiers CSS? Et l'utilisation classique Tapuscritimport
déclaration? Avec./styles.css.d.ts
:import * as styles from './styles.css'
- Importation à l'aide de
require
Webpack fonction?let styles = require("./styles.css");
Mais pour la dernière approche que je doit définir le require
fonction.
Quelle est la meilleure approche ou la meilleure option et qui peut aussi gérer IntelliSense pour le fichier CSS et de définitions de classes?
soit
Double Possible de Utiliser les CSS des Modules de Réagir composants avec la Machine construite par webpack
import * as styles from ...
ou import styles = require(...
sont valides. Vous aurez probablement à déclarer un module pour votre fichier css de toute façon-soit explicite ou générique pour tous les fichiers css-- comme le tapuscrit compilateur ne avez aucune idée à ce sujet. voir ici pour le calcul automatique du générateur.Double Possible de Utiliser les CSS des Modules de Réagir composants avec la Machine construite par webpack
OriginalL'auteur Diego Laciar | 2016-12-26
Vous devez vous connecter pour publier un commentaire.
A) Comme vous le dites, il y en a un plus simple (et non la meilleure option pour les utiliser besoin:
require
que ce n'est pas la fonction standard en caractères d'imprimerie.Plus simple de taper pour ce besoin peut être:
Webpack compilera tapuscrit et utiliser les modules correctement - MAIS sans aucune IDE de l'aide et des noms de classe vérifie pour construire.
B) Il y a une meilleure solution pour une utilisation standard importation:
tsc
compilateur va échouerPour une bonne IntelliSense, Webpack besoins de générer des types de définition pour chaque fichier css:
Utilisation webpack typings-pour-css-modules-chargeur
Chargeur permettra de générer
*.css.d.ts
fichiers pour chacun des fichiers css dans votre base de codeMentionné
typings-for-css-loader
contient un bug et en raison de types de génération de fichiers de retard, il est préférable de déclarer mondiale*.css
type dans le cas de notre*.css.d.ts
fichier n'est pas généré encore.Que petit bug scénario:
component.css
import * as css from './component.css'
webpack
component.css.d.ts
), mais il est tard pour tapuscrit compilateur pour trouver de nouveaux typings fichierwebpack
de nouveau correctif erreur de construction.Solution facile est de créer de la définition globale (eg. fichier appelé
typings.d.ts
dans votre source de racine) pour l'importation des Modules CSS:Cette définition sera utilisée que si il n'existe pas de fichier css généré (par exemple. vous avez ajouté de nouveaux fichier css). Autrement seront utilisés généré spécifiques (doit être dans le même dossier et nommé même que le fichier source +
.d.ts
extension), par exemple.component.css.d.ts
définition et IntelliSense fonctionnera parfaitement.Exemple de
component.css.d.ts
:Et si vous ne voulez pas voir les css généré typings vous pouvez l'installation de filtre à l'IDE pour masquer tous les fichiers avec l'extension .css.d.ts dans votre sources.
OriginalL'auteur Jurosh
J'ai ajouté un fichier nommé
Global.d.ts
outypings.d.ts
à mon./src
dossier avec quelques définitions de type:Webpack css config:
Ensuite, j'ai simplement importer le module comme:
import * as styles from "./App.module.css";
OriginalL'auteur wiesson
C'est juste ce que je utilisé à faire et à toujours avoir un code dans quelques-uns de mes projets.
Maintenant : j'ai écrit de type de caractères : http://typestyle.github.io/#/ mais vous n'avez pas à l'utiliser. Il suffit de coller avec
const styles = require('./styles.css')
si elle vous rend heureux. FWIW, vous pouvez également utiliser des css avec le type de caractères si vous voulez http://typestyle.github.io/#/rawOriginalL'auteur basarat
let styles = require("./styles.css");
est la meilleure approche, car il est es5 version de javascript qui est compatible avec toutes les fonctionnalités de réagir.import * as styles from './styles.css'
est es6 version de javascript.Je suis d'accord avec @Meirion Hughes. merci à tous pour les réponses !
OriginalL'auteur Codesingh