1

Я использую предварительный компилятор шаблонов handlebars для выражения (https://github.com/diffsky/hbsc), чтобы предварительно скомпилировать мои шаблоны в nodejs.Прекомпиляция ручек в узлах с помощью nodejs не работает на Cloud9

Он отлично работает, когда я делаю это локально, но когда я пытаюсь использовать его в cloud9 ide (https://c9.io), он работает в первый раз, а затем я получаю исключения.

Это моя конфигурация из app.js

var hbsc = require('hbsc'); 
    hbsc.compile({ 
     dir: __dirname + '/views/public', 
     outfile: __dirname + '/public/javascripts/compiled-templates.js', 
     extensions: ['hbs', 'handlebars'] 
    }); 

Это мой простой шаблон

<b>All users</b> 

<div> 
    {{#each this}} 
    <li>{{email}}</li> 
    {{/each}} 
</div> 

И это исключение, которое я получаю

/var/lib/stickshift/5168822b4382ec505c0000ba/app-root/data/471704/views/public/listusers.handlebars:1 
(function (exports, require, module, __filename, __dirname) { <b>All users</b> 
           ^
SyntaxError: Unexpected token < 
    at Module._compile (module.js:437:25) 
    at Object.Module._extensions..js (module.js:467:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.runMain (module.js:492:10) 
    at process.startup.processNextTick.process._tickCallback (node.js:244:9) 

Если я удалить скомпилированный файл шаблона и повторите попытку через некоторое время, он успешно (иногда), но если я изменю шаблон, нс.

Опять же, этот код отлично работает при запуске локально, поэтому похоже, что cloud9 обрабатывает что-то по-другому.

Эта ошибка действительно меня озадачивает, так как я не нахожу в ней никакой логики. Может ли кто-нибудь помочь мне с пониманием того, с чего начать искать эту проблему?

ответ

0

Это был конфликт между шаблонами руля для сервера и теми, что были на клиенте. Я использовал express3-handlebars для компиляции шаблонов для сервера, и ошибка исходила от этого компилятора, а не от клиента.

Моим решением было переименовать клиентские шаблоны вместо .html. Таким образом, оба компилятора, похоже, ладят друг с другом.

Я все еще не могу объяснить, почему у меня никогда не было такой же ошибки на моей локальной установке nodejs.

 Смежные вопросы

  • Нет связанных вопросов^_^