Sebelum memperbarui (node-sass 1.13.1), berikut ini berfungsi tanpa masalah:
masukan.sass
:global
.my-global-class-name
background-color: red
Sekarang saya mendapatkan kesalahan berikut:
ERROR in ./~/css-loader?modules&importLoaders=2&camelCase&sourceMap!./~/postcss-loader?sourceMap=inline!./~/sass-loader?sourceMap!./app/styles/modules/resourceForm.sass
Module build failed:
.my-global-class-name
^
Illegal nesting: Only properties may be nested beneath properties.
in .../app/styles/modules/resourceForm.sass (line 7, column 9)
@ ./app/styles/modules/resourceForm.sass 4:14-254 13:2-17:4 14:20-260
informasi versi:
$ node-sass --version
node-sass 4.0.0 (Wrapper) [JavaScript]
libsass 3.4.0 (Sass Compiler) [C/C++]
npm -v
): 3.10.3node -v
): 6.7.0node -p process.versions
):node -p process.platform
): darwinnode -p process.arch
): x64node -p "require('node-sass').info"
):npm ls node-sass
): [email protected]Proyek ini merupakan implementasi dari bahasa Sass. Tujuan kami adalah menjadi 100% kompatibel dengan Sass. Kami menutup masalah ini karena Ruby Sass menghasilkan output yang sama. Di masa mendatang, harap konfirmasikan bahwa keluaran LibSass berbeda dari Ruby Sass sebelum membuka masalah.
Jika Anda ingin menyarankan fitur bug file dalam bahasa Sass, silakan buka masalah dengan Sass - https://github.com/sass/sass
Itu dikompilasi dengan LibSass karena bug yang telah ditambal. Kode ini bukan Sass yang valid dan seharusnya tidak pernah dikompilasi. Anda dapat mengkonfirmasi ini dengan menguji kode Anda dengan Ruby Sass.
:global
.my-global-class-name
background-color: red
Error: Properties are only allowed within rules, directives, mixin includes, or other properties.
If ":global" should be a selector, use "\:global" instead.
on line 1 of test.sass
Use --trace for backtrace.
Pesan kesalahan Ruby Sass jauh lebih baik daripada pesan kami dan menyarankan Anda untuk mengatasinya. Untuk mengubah perilaku ini, Anda perlu membuka permintaan fitur dengan Ruby Sass
Perhatikan bahwa sintaks modul CSS valid dengan format scss
:global {
.my-global-class-name {
background-color: red
}
}
@xzyfer Tahukah Anda mengapa :global
tidak valid Sass? Ini adalah pemilih CSS yang valid dan mungkin akan menjadi lebih umum di masa mendatang segera setelah lebih banyak orang menggunakan pemilih :host
saat menulis komponen web.
@jhnns ada beberapa elemen berbeda yang dimainkan di sini. OP menggunakan sintaks indentasi lama.
:global
.my-global-class-name
background-color: red
Dalam sintaks itu, penyeleksi :foo
memiliki arti khusus. Makna ini mendahului penyertaan selektor awalan :
dalam CSS hampir satu dekade. Seperti yang saya katakan di atas, mengubah perilaku ini tidak termasuk dalam lingkup LibSass dan perlu ditangani oleh tim Sass resmi .
Di sisi lain sintaks scss yang lebih baru menjamin (kebanyakan) menjadi set super CSS. Untuk alasan ini penyeleksi awalan :
bekerja seperti yang diharapkan.
@delijah saya bisa mendapatkan ini bekerja lagi setelah memutakhirkan dengan keluar dari titik dua yaitu
\:global
.my-global-class-name
background-color: red
@mattfysh saya dapat mengkonfirmasi ini. Menggunakan "\" memecahkan masalah. Sekarang sass-linter saya tidak menyukainya;) Saya akan membuka masalah untuk itu.
Komentar yang paling membantu
@delijah saya bisa mendapatkan ini bekerja lagi setelah memutakhirkan dengan keluar dari titik dua yaitu