2014-01-06 2 views
0

Я пишу приложение, которое использует swig напрямую. Мне не нужно кэшировать кэширование, и я не хотел бы звонить swig.setDefaults({ cache: false });.swig.compileFile результат кэшируется даже с {cache: false} opts set

Поэтому я пытаюсь вызвать swig.compileFile (url, {cache: false}); , проблема в том, что шаблон, как представляется, всегда кэшируется. Что я делаю не так ?

+0

(я являюсь создателем шаблонов Swig) Я просто проверить, что все работая нормально, поскольку вы ожидаете, что это должно быть. Вы уверены, что используете последнюю версию (1.2.2)? Можете ли вы опубликовать тестовый файл на баребонах, который отображает весь код, создающий проблему? –

+0

О, как в ответе ниже, похоже, что я неправильно прочитал ваш вопрос. Похоже, вы // пытаетесь // вызвать swig.setDefaults, и он не работает. Вы должны указать на проблему GitHub, или (желательно) отправить запрос на перенос. –

ответ

1

Код https://github.com/paularmstrong/swig/blob/v1.2.2/lib/swig.js#L608

Не знаю, почему там нет кода доступа к options.cache, теперь я думаю, что это больше похоже на ошибку, или, по крайней мере, не хороший дизайн апи, поскольку документ Упоминание о вариантах многоуровневых


Другой вариант очистить кэш в памяти до компиляции:

swig.invalidateCache(); 
var template = swig.compileFile('index.html'); 
+0

Спасибо за ответ, – kiuma

+0

Но я знаю, что swig.setDefaults ({cache: false}) ;. Из документации я понял, что также можно вызвать swig.compileFile (url, {cache: false}); вместо установки значений по умолчанию. – kiuma

+0

Они говорили, что используют многоуровневые опции, но код говорит НЕТ :), Это ошибка? – damphat