Que fait un tilde `~` dans une CSS ʻurl () `?


91

Par exemple @import url("~./foobar");

Je l' ai vu ici , je ne sais pas s'il s'agit d'un élément spécifique au package ou s'il s'agit d'une syntaxe CSS réelle.


3
@JackMiller Non, ce n'est pas un opérateur de sélection, cela fait partie d'un répertoire de fichiers.
user4642212

Réponses:


132

Le chemin CSS@import<url> est généralement relatif au répertoire de travail actuel.

Ainsi, l'utilisation du préfixe ~au début du chemin indique au chargeur Webpack de résoudre l'importation "comme un module" à partir d'un chemin de module de nœud.

Cela signifie que si vous avez un module de nœud appelé normalizeinstallé et que vous devez importer un fichier à partir de celui-ci nommé /normalize.css, vous pouvez le faire avec:

@import "~normalize/normalize.css";

Dans votre exemple lié, à l'intérieur, font-loader/example/test.jsil y a une importation d'un module appelé font-boon.

var boon = require('./font-boon');

À l'intérieur du font-loader/example/test.cssmodule font-boon se trouve @imported afin qu'il soit disponible dans text.css.

@import url("~./font-boon");


7
donc .. en gros, est-ce que ~contient le node_modulechemin?
adrianriyadi

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.