Libsass: 3.5.3 регресс: импорт файлов `.css` не выполняется вместо предупреждения (как указано в примечаниях к выпуску)

Созданный на 24 апр. 2018  ·  6Комментарии  ·  Источник: sass/libsass

Первоначально сообщается здесь: https://github.com/sass/libsass-python/issues/245

input.scss

<strong i="8">@import</strong> 'cssfile';

cssfile.css

a { b: c; }

libsass 3.5.2 (через libsass-python )

$ pysassc --version
pysassc 0.14.2 (sass/libsass 3.5.2)
$ pysassc input.scss 
a {
  b: c; }

libsass 3.5.3 (через libsass-python )

$ pysassc --version
pysassc 0.14.3 (sass/libsass 3.5.3)
$ pysassc input.scss 
pysassc: error: Error: File to import not found or unreadable: cssfile.
        on line 1 of input.scss
>> <strong i="20">@import</strong> 'cssfile';

   ^

Я ожидаю предупреждения, отмеченного в примечаниях к выпуску

Самый полезный комментарий

Меня очень смущает амортизация, нигде не ясно:

Предупреждение об устаревании будет удалено в 3.6.0.

против.

Включение файлов .css с @import - нестандартное поведение, которое будет удалено в будущих версиях LibSass. Используйте настраиваемый импортер, чтобы поддерживать такое поведение. Ознакомьтесь с документацией по реализации, чтобы узнать, как создать настраиваемый импортер.

Будет ли удалено предупреждение об амортизации в версии 3.6.0, и sass_option_push_import_extension продолжит работать или функция импорта css будет полностью удалена?

Лично я бы сказал, что для libsass было бы большим шагом назад прекратить поддержку импорта css, это будет либо означать:

  • библиотеки, использующие libsass, должны реализовать свои собственные пользовательские импортеры для поддержки css
  • или средний пользователь (который, я думаю, не имеет представления о настраиваемых импортерах или о том, как их реализовать) теряет право импортировать css в свой sass, тем самым теряя все преимущества проверки и сжатия css.

Я не использую рубин, я не собираюсь и мне наплевать, что он делает, а что нет. Пожалуйста, оставим нам sass_option_push_import_extension .

Все 6 Комментарий

Думаю, это можно закрыть, это именно то, чего ожидал # 1963.

Лично я думаю, что сначала нужно было обесценить его с помощью предупреждения и вызвало незначительный выпуск, а не патч, но сейчас уже слишком поздно.

Извините, это было непреднамеренное критическое изменение для этого выпуска исправления.

Я предпочитаю продвигаться вперед с изменениями и обновлять примечания к выпуску.

Вам нужно будет использовать sass_option_push_import_extension API, чтобы повторно включить импорт .css как я вижу, вы это сделали в https://github.com/sass/libsass-python/pull/246 .

Примечание. Это приведет к предупреждению об устаревании файлов .css . Предупреждение об устаревании будет удалено в 3.6.0.

Меня очень смущает амортизация, нигде не ясно:

Предупреждение об устаревании будет удалено в 3.6.0.

против.

Включение файлов .css с @import - нестандартное поведение, которое будет удалено в будущих версиях LibSass. Используйте настраиваемый импортер, чтобы поддерживать такое поведение. Ознакомьтесь с документацией по реализации, чтобы узнать, как создать настраиваемый импортер.

Будет ли удалено предупреждение об амортизации в версии 3.6.0, и sass_option_push_import_extension продолжит работать или функция импорта css будет полностью удалена?

Лично я бы сказал, что для libsass было бы большим шагом назад прекратить поддержку импорта css, это будет либо означать:

  • библиотеки, использующие libsass, должны реализовать свои собственные пользовательские импортеры для поддержки css
  • или средний пользователь (который, я думаю, не имеет представления о настраиваемых импортерах или о том, как их реализовать) теряет право импортировать css в свой sass, тем самым теряя все преимущества проверки и сжатия css.

Я не использую рубин, я не собираюсь и мне наплевать, что он делает, а что нет. Пожалуйста, оставим нам sass_option_push_import_extension .

Приносим извинения за непонятность. С тех пор примечания к выпуску были обновлены, чтобы, надеюсь, стать более понятными.

Я не использую рубин, я не собираюсь и мне все равно, что он делает, а что нет

Во-первых, это не мы против Руби. Sass - это язык со спецификацией, как и любой другой. Реализация Ruby является источником истины для спецификации языка Sass.

Необработанный импорт CSS - это функция, которая нарушает спецификацию языка Sass, и ее никогда не должно было быть в LibSass. Его надо удалить.


Поскольку люди стали настолько зависимыми от него, мы должны удалить его ответственным образом.

Таким образом, мы делаем это поведение согласия через sass_option_push_import_extension . Этот API не исчезнет, пока не появится способ, совместимый с языком Sass. Такая функция предусмотрена в системе модулей 4.0.

Предупреждение об устаревании было добавлено в 3.5.x, потому что в LibSass недостаточно хуков, чтобы разработчик мог эффективно выдавать правильное предупреждение об устаревании. Это предупреждение об устаревании, которое будет удалено в версии 3.6.

Это то место, где мы ожидаем, что разработчики подтолкнут своих крупных компаний, если они захотят сохранить соответствие спецификациям.

Спасибо за разъяснение.

Я только что прочитал предложение модуля для sass 4, и оно отлично выглядит.

См. Также https://github.com/sass/node-sass/issues/2362, чтобы справиться с этим на стороне node-sass.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги