Цитата:
|
snakeskin({ prettyPrint: true })
|
Ты не указал тип экспорта для ноды.
snakeskin({ prettyPrint: true, exports: 'commonJS' })
А не работает, потому что компиляция делается с глобальным экспортом, а ты запускаешь в ноде.
(До версии 6 это делалось с помощью флага .commonJS)
Цитата:
|
concat('index.ss')
|
Лучше так не делать, т.к. в SS предусмотрена директива include и при сборке файлов она организует модули, гарантирует инкапсуляцию глобальных переменных, настроек компиляции и т.д.
https://github.com/kobezzza/Snakeskin/wiki/include
Сообщение от Safort
|
Но это ещё не всё. В app.js пишу следующее:
var snakeskin = require('snakeskin');
var tpls = snakeskin.compileFile(__dirname+'/app/views/index.ss');
console.log(tpls.text('ss'));
Запускаю файл - работает. Но и это ещё не всё, снова пишу:
var tpls = require(__dirname+'/app/views/index.ss.js').init(require('snakeskin'));
console.log(tpls.text('ss.js'));
Запускаю. И это теперь тоже работает.
Казалось бы, коммунизм наступил всё норм, но нет.
Редачу файл index.ss (или просто жму Ctrl+S в Sublime), Gulp подхватывает изменения, запускаю app.js и снова вылетает ошибка.
И такой баг(?) повторяется только при использовании уже компилированного шаблона, при живой компиляции такой проблемы нет.
Не знаю в чём именно проблема, но раз ошибку выдаёт SS, то решил написать сюда.
|
Всё норм, compileFile сейвит полученный шаблон (с экспортом для ноды) на жёсткий диск, а когда ты Галпом перезаписываешь файл с экспортом без ноды, то он перестаёт работать, т.е. просто задай правильный экспорт и будет всё хорошо
PS: кстати, в SS CLI API есть свой вотчер, но в отличии от того же галпа, он работает с графом отношений файлов, т.е. если обновить, например, файл локализации, который подключён в шаблон, то он перекомпилит его.
https://github.com/kobezzza/Snakeski...0%BE%D0%B5-API
Скомпилить все шаблоны в папке и сохранить в другую папку результат, задать вотчер.
snakeskin ./myTpls/ -o './compile/%file%.js' --watch