kobezzza,
у меня тут небольшая проблема, не подскажешь, что за магия творится?)
Решил я использовать уже компилированные SS-файлы в Ноде(вместо живой компиляции).
Итак, действующие лица:
gulpfile.js
/app/views/index.ss
/app/views/index.ss.js
app.js
Сожержимое gulpfile.js:
//...
gulp.task('views', function() {
gulp.src([ 'путь_к_исходнику/' + 'index.ss'])
.pipe(concat('index.ss')) //на будущее, когда будет много файлов
.pipe(gulp.dest('app/views'))
.pipe(snakeskin({ prettyPrint: true }))
.pipe(gulp.dest('app/views'));
});
// ...
Содержимое index.ss (упростил для примера):
{template text(a)}
{a}
{end}
Сожержимое app.js:
var tpls = require(__dirname+'/app/views/index.ss.js').init(require('snakeskin'));
console.log(tpls.text('ss.js'));
Запускаю скрипт, а консоль меня посылает
C:\dev\test>node app.js
C:\dev\test\app\views\index.ss.js:7
var $C = this.$C != null ? this.$C : Snakeskin.Vars.$C,
^
ReferenceError: Snakeskin is not defined
at Object.<anonymous> (C:\dev\test\app\views\index.ss.js:7:42
)
at Object.<anonymous> (C:\dev\test\app\views\index.ss.js:164:
4)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\dev\test\app.js:18:12)
at Module._compile (module.js:456:26)
Но это ещё не всё. В 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, то решил написать сюда.