Libsass: запрос функции:: Добавить флаг, чтобы отключить ПРЕДУПРЕЖДЕНИЯ ОБ УСТАРЕВАНИИ

Созданный на 31 янв. 2019  ·  10Комментарии  ·  Источник: sass/libsass

Начиная с версии 4.9 node-sass текущее предупреждение отображается во многих проектах. ( вы можете увидеть открытую проблему с просьбой о том, как отключить предупреждение здесь )

DEPRECATION WARNING: Passing a string to call() is deprecated and will be illegal
in Sass 4.0. Use call(get-function("variable-exists")) instead.

Предупреждение в порядке, и я хотел бы исправить все мои вызовы устаревших функций, но я не могу, основная причина в том, что я даже не знаю, в какой библиотеке возникла проблема ... (это не мой код) i понимают необходимость принуждения всех к обновлению устаревшего материала, но это невозможно. Я думаю, что каждый разработчик несет ответственность за свое собственное приложение, и риск того, что оно устареет, - это сам по себе, я беру на себя ответственность :)

Итак ... этот запрос функции состоит в том, чтобы как-то добавить где-нибудь флаг, который можно включить / выключить DEPRECATION WARNINGS

Я уже по ошибке пытался добавить переменную среды в проект node-sass, но @nschonni сказал мне, что PR должен быть сделан здесь в libsass , однако @xzyfer сказал мне, что приемлемое решение для отключения устаревания предупреждения заключается в том, чтобы исправить устаревший код, даже если подумать, что код принадлежит кому-то другому, библиотеке.

  • Вы можете увидеть, что код для добавления флага уже доступен в PR-2587 из проекта node-sass , это немного.
  • Также открытым вопросом по этому поводу является 2334 (также из проекта node-sass).

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

Я думаю, что у меня есть более стандартное решение, что вы все думаете о реализации уровней логов ?? (например, log4j, winston и т. д.).

Скажите, пожалуйста, согласны ли вы с этим больше :) (так что я изменю это название FR)

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

Однако мы рассмотрим решения, которые упрощают поиск кода с использованием устаревшего поведения.

Спасибо, что ответили на все мои проблемы с этим @xzyfer ... кстати, я нашел библиотеку с проблемой, поэтому исправление для меня выполняется: +1:

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

Пожалуйста, помните, что эти предупреждения не являются критически важными для продолжения нашей работы в качестве разработчиков ... если бы они были такими, вместо предупреждения была бы выдана ошибка.

Альтернативный подход может быть https://github.com/sass/libsass/pull/2862 ...

Это действительно важно. Сейчас я получаю десятки одинаковых ошибок.

DEPRECATION WARNING on line 29 of sass/elements/image.sass:
#{} interpolation near operators will be simplified in a future version of Sass.
To preserve the current behavior, use quotes:

  unquote("image_size_#{$size}")

с чем-то вроде этого

+_(image_size_#{$size})

Я даже не уверен, к какому оператору это относится, но я бы предпочел перейти на «упрощенную версию», когда она появится, чем написать эту ужасно выглядящую альтернативу.

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

Да, я согласен с @xzyfer , но я уже прочитал эти предупреждения и хочу пока отложить их в сторону и сосредоточиться на других вещах, но я не могу, потому что эти предупреждения заполняют весь терминал

В настоящее время нет намерения поддерживать это. Предупреждение об устаревании критически важно для нас, разрабатывающих язык. Отключение предупреждения об устаревании - это просто отсрочка боли на тот момент, когда будет внесено критическое изменение, которое наш трекер проблем будет рад залить. Чтобы удалить предупреждение, перейдите на версию Libsass, предшествующую введению предупреждения.

Предупреждения полезны только при первом чтении. Если кто-то отключает их, потому что они уже прочитали их и устали от них и, следовательно, знают о них, повторный показ не будет иметь никакого значения, и в будущем они узнают, почему они сломались.
Не позволять людям скрывать эти предупреждения никому не помогает, это просто раздражает.

Также предупреждение о том, как он станет более упрощенным, и о решении, которое оно дает, чтобы сделать его намного более сложным.
Вы можете понять, почему кто-то не захочет последовать этому предложению, особенно когда я использую его во всем своем проекте.

@xzyfer, у тебя есть хорошее замечание по этому поводу !! Я согласен :)

Отключение предупреждения об устаревании - это просто отсрочка боли на тот момент, когда будет внесено критическое изменение, которое наш трекер проблем будет рад залить.

Однако я думаю, что мы все еще можем найти решение !! для большинства разработчиков, жалующихся на это. Основная причина в этой части (как сказал @luaVolk ):

Сейчас я получаю десятки одинаковых ошибок.

Что вы думаете о сокращении всех этих предупреждений до одного ? в моем случае, когда я открыл этот запрос функции, я получал около 100 тыс. предупреждений. Я думаю, вы можете удалить все «подробные предупреждения» и просто напечатать:

Your libsass implementation is deprecated and will be illegal in Sass 4.0, for more details try '--libsass-verbose'.

И, может быть, добавить:

The following errors were found:
> 12 errors found: #{} interpolation near operators will be simplified in a future version of Sass
> 4 errors found: Passing a string to call() is deprecated and will be illegal
in Sass 4.0. Use call(get-function("variable-exists")) instead.

Или что-то в этом роде ... Надеюсь, ты понял, что ты думаешь @xzyfer?

Думаю, мой последний комментарий стоит того, чтобы его обработали как запрос другой функции (?)

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