Элемент $variable разрешается только по имени без явного использования в Sass PhpStorm

Я новичок в Sass (SCSS). В Sass я слежу за 7-1 pattern и в настоящее время использую Phpstorm в качестве IDE.

Я импортирую все свои файлы _<name>.scss в один основной файл с именем main.scss file.

Проблема

Я определяю свои цветовые переменные в файле _variables.scss, но когда я использую их в другом файле .scss, PhpStorm выдает ошибку, например

Element 'gutter-horizontal' (variable name) is resolved only by name without use of explicit imports more...

Я также привожу скриншот своей IDE, так что вы знаете структуру моей папки.

Элемент $variable разрешается только по имени без явного использования в Sass PhpStorm

Я проверяю весь интернет, но не могу найти решения, это не повторяющийся вопрос этого вопрос ok !!

НО

Когда я импортирую свой _variables.scss в свои файлы scss, ошибка исчезает.

Элемент $variable разрешается только по имени без явного использования в Sass PhpStorm

Вопрос

Итак, мне нужно импортировать vaiables.scss во все мои файлы scss или я что-то не так сделал?

Я не понимаю, откуда эта проблема? Sass или PhpStorm?

переменные.scss

// COLORS

$color-primary: #55c57a;
$color-primary-light: #7ed56f;
$color-primary-dark: #28b485;
$color-gray-dark: #777;

$color-black: #000;
$color-white: #fff;

// GRID

$grid-width: 114rem;
$gutter-vertical: 8rem;
$gutter-horizontal: 6rem;

main.scss

@charset "UTF-8";

@import 'abstracts/variables';
@import 'abstracts/functions';
@import 'abstracts/mixins';

@import 'base/animations';
@import 'base/base';
@import 'base/typography';
@import 'base/utilities';

@import 'components/buttons';

@import 'layout/header';
@import 'layout/grid';

@import 'pages/home';

Просто игнорируйте ошибку от PHPStorm

SuperDJ 02.02.2019 19:14

какая-то конкретная причина?

Nisharg Shah 02.02.2019 19:17

Это просто, чтобы вы знали. Пока вы не получите настоящую ошибку от SCSS, все готово. Ошибки даже нет, если вы используете такой редактор, как vsc

SuperDJ 02.02.2019 19:19

о, так что мне делать, чтобы решить эту ошибку в phpstorm, просто игнорировать?

Nisharg Shah 02.02.2019 19:24

Да, как я сказал

SuperDJ 02.02.2019 19:27

IDE не знает, что переменные из вашего _variables.scss будут использоваться в _grid.scss через ваш main.scss (потому что он используется косвенно). Вы можете прочитать немного больше в этом комментарии: youtrack.jetbrains.com/issue/…. Как упомянул Mikepote, эту проверку можно отключить.

LazyOne 02.02.2019 20:42
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
38
6
14 412
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Нет, вы все делаете правильно. Имейте один файл main.scss и убедитесь, что ваши переменные имеют значение первый, которое вы импортируете (иначе вы столкнетесь с проблемами неопределенных переменных в других файлах). Вам не нужно повторно импортировать свои переменные для каждого файла, если все они включены в ваш файл main.scss.

Обычно я игнорирую эту ошибку PhpStorm, или вы можете отключить ее:

  • Перейти к File -> Settings
  • Editor -> Inspections на левой панели
  • Sass/SCSS на правой панели
  • снимите флажок Missing import (или Resolved by name only в более старых версиях)

братан, ты классный.

Nisharg Shah 02.02.2019 21:05

@NishargShah Удовольствие :)

Mikepote 02.02.2019 21:18

У меня сработало, спасибо

mohammad hosein abedini 02.09.2020 09:28

Это плохая практика? как отключить проверку eslint?

Maxime P 05.07.2021 11:57

@MaximeP Нет, я бы не считал это плохой практикой, я просто хочу предупредить вас, что PhpStorm не может разрешить файлы, необходимые для компиляции SASS. Это не имеет ничего общего со стандартами кодирования.

Mikepote 07.07.2021 12:47

UPD 2021, теперь настройка называется "Отсутствует импорт"

Alexander Semikashev 10.09.2021 18:28

В версии GoLand 2021 элемент Resolved by name only был переименован:

  1. Preferences -> Editor -> Inspections -> Sass/SCSS (на правой панели)
  2. Снимите флажок с Missing Import.

Другие вопросы по теме