SASS: Неверный @import: ожидаемый конец строки, был ";" - иногда - PullRequest
14 голосов
/ 17 декабря 2011

У меня есть файл sass, который содержит только операторы импорта

@import "this";
@import "that";

если я запускаю sass из командной строки, все хорошо

bundle exec sass foo.scss:foo.css

Если, однако, я запускаю его из скрипта (также через пакет exec), он расстраивается из-за этих точек с запятой. Это ...

template = File.read("foundation.scss")
sass_engine = Sass::Engine.new(template)
sass_output = sass_engine.render

... производит следующее при вызове sass_engine.render:

(sass):1: Invalid @import: expected end of line, was ";". (Sass::SyntaxError)

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

Что происходит, и как я могу получить точки с запятой при запуске из скрипта?

1 Ответ

16 голосов
/ 19 декабря 2011

Разница в том, что программа командной строки Sass замечает расширение "scss" и анализирует файл как SCSS вместо традиционного Sass.Когда вы делаете это программно, вы запускаете движок Sass и не говорите ему, что это вместо SCSS.

Итак, ошибка в том, что он читает его как Sass вместо SCSS.

http://sass -lang.com / docs / yardoc / file.SASS_REFERENCE.html # options

Это должно решить вашу проблему прямо сейчас!

template = File.read("foundation.scss")
sass_engine = Sass::Engine.new(template, :syntax => :scss)
sass_output = sass_engine.render

Альт!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...