Подтвердить что ты не робот

Могут ли переменные использоваться в операторах импорта для файлов Sass?

В Меньше я могу сделать что-то вроде этого

@basePath:"../../some_crazy_project_path_to_repeat/less/";
@import "@{basePath}less.less";

Поэтому я попытался сделать то же самое в Sass

$basePath:"../../some_crazy_project_path_to_repeat/less/";
@import "${basePath}less.scss";
// Syntax error: File to import not found or unreadable: ${basePath}less.scss.

и

@import "#{basePath}less.scss";
// Syntax error: File to import not found or unreadable: #{basePath}less.scss.

Есть ли способ сделать это в Sass?

4b9b3361

Ответ 1

Вы не можете использовать условный материал для импорта в SASS.

Рассмотрите возможность создания расширения Compass из вашего проекта.

Ответ 2

Вы не можете использовать переменные в пути импорта, как уже упоминалось. Что вы можете сделать, это использовать параметр -I или --load-path, чтобы указать каталог для поиска.

sass --watch sass/:css/ --load-path ../../path/to/library/

Скажем, у вас есть структура каталогов:

themes
    hotdog
        _variables.scss
    classic
        _variables.scss
styles.scss

В ваших styles.scss должны быть пути импорта, относящиеся к предоставленным маршрутам (-ам) загрузки:

// note the import here doesn't contain themes, hotdog, or classic
@import "variables"; 

@debug $foo;

Ваши команды будут выглядеть примерно так:

# hotdog
sass styles.scss hotdog.css --load-path ./themes/hotdog/
# classic
sass styles.scss classic.css --load-path ./themes/classic/

Дополнительную информацию см. в Документация параметров Sass.