قبل التحديث (node-sass 1.13.1) ، نجح ما يلي دون أي مشاكل:
المدخلات
:global
.my-global-class-name
background-color: red
الآن أتلقى الخطأ التالي:
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
معلومات الإصدار:
$ 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
): داروينnode -p process.arch
): x64node -p "require('node-sass').info"
):npm ls node-sass
): [email protected]هذا المشروع هو تطبيق للغة ساس. هدفنا هو أن نكون متوافقين بنسبة 100٪ مع Sass. نحن بصدد إغلاق هذه المشكلة نظرًا لأن Ruby Sass ينتج نفس الإخراج. في المستقبل ، يُرجى تأكيد اختلاف إخراج LibSass عن Ruby Sass قبل فتح إصدار.
إذا كنت ترغب في اقتراح ميزات أخطاء الملفات بلغة Sass ، فيرجى فتح مشكلة مع Sass - https://github.com/sass/sass
تم تجميعه مع LibSass بسبب خطأ تم تصحيحه. هذا الرمز ليس Sass صالحًا ولا يجب تجميعه مطلقًا. يمكنك تأكيد ذلك عن طريق اختبار الكود الخاص بك مع 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.
رسالة خطأ Ruby Sass أفضل بكثير من رسالتنا وتقترح حلًا. لتغيير هذا السلوك ، ستحتاج إلى فتح طلب ميزة مع Ruby Sass
تجدر الإشارة إلى أن بنية وحدة CSS صالحة بتنسيق scss
:global {
.my-global-class-name {
background-color: red
}
}
xzyfer هل تعرف لماذا :global
غير صالح Sass؟ إنه محدد CSS صالح ومن المحتمل أن يصبح أكثر شيوعًا في المستقبل بمجرد استخدام المزيد من الأشخاص لمحدد :host
عند كتابة مكونات الويب.
jhnns هناك عدة عناصر مختلفة في اللعب هنا. يستخدم البروتوكول الاختياري بناء الجملة القديم ذي المسافة البادئة.
:global
.my-global-class-name
background-color: red
في بناء الجملة هذا ، يكون للمحددات :foo
معنى خاص. هذا المعنى يسبق تضمين محددات مسبقة :
في CSS بحوالي عقد من الزمن. كما قلت أعلاه ، تغيير هذا السلوك ليس ضمن نطاق LibSass ويجب معالجته من قبل فريق Sass الرسمي .
من ناحية أخرى ، يضمن بناء جملة scss الأحدث (في الغالب) أن يكون مجموعة فائقة من CSS. لهذا السبب ، تعمل المحددات البادئة :
كما هو متوقع.
delijah لقد تمكنت من الحصول على هذا العمل مرة أخرى بعد الترقية عن طريق الهروب من القولون أي
\:global
.my-global-class-name
background-color: red
mattfysh يمكنني تأكيد ذلك. استخدام "\" يحل المشكلة. الآن لم يعجبني sass-linter ؛) سأفتح مشكلة لذلك.
التعليق الأكثر فائدة
delijah لقد تمكنت من الحصول على هذا العمل مرة أخرى بعد الترقية عن طريق الهروب من القولون أي