Apa yang dilakukan `~` tilde dalam CSS `url ()`?

92

Misalnya @import url("~./foobar");

Melihatnya di sini , tidak yakin apakah itu hal khusus paket atau apakah itu sintaks CSS sebenarnya.

ahstro
sumber
3
@JackMiller Tidak, ini bukan operator pemilihan, ini bagian dari direktori file.
pengguna4642212

Jawaban:

133

The CSS@import path <url>biasanya relatif ke direktori kerja saat ini.

Jadi menggunakan awalan ~di awal jalur memberi tahu Webpack loader untuk menyelesaikan impor "seperti modul" dari jalur modul node.

Artinya adalah jika Anda memiliki modul node yang disebut normalizeterinstal, dan Anda perlu mengimpor file dari dalam namanya /normalize.css, Anda dapat melakukannya dengan:

@import "~normalize/normalize.css";

Dalam contoh Anda yang ditautkan, di dalamnya font-loader/example/test.jsada impor modul bernama font-boon.

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

Di font-loader/example/test.cssdalam modul font-boon adalah @imported sehingga tersedia dalam format text.css.

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

ksav
sumber
7
jadi .. pada dasarnya, apakah ~mengandung node_modulepath?
adrianriyadi