Node Express Consolidate Hogan - Несогласованная ошибка при компиляции

Я обновил свое приложение со старых библиотек до новейшего, но столкнулся с противоречивой ошибкой.
Мои любимые:

npm list --depth=0
    ├── consolidate@0.10.0
    ├── express@4.4.4
    ├── hogan.js@3.0.2
    ├── node-uuid@1.4.1
    └── socket.io@1.0.6

Вот пример кода, который я запускаю. Полный код здесь.

var express = require('express');
var http = require('http');
var uuid = require('node-uuid');
var consolidate = require('consolidate');

//////////////////////
// Server setup
//////////////////////
var app = express();
app.engine('html', consolidate.hogan);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');
app.enable('view cache');
app.disable('view layout');

var server = http.createServer(app);
var io = require('socket.io').listen(server);
io.set('log level', 1); // reduce logging

server.listen(9000);

//////////////////////
// Routing
//////////////////////
// Partials used in many rendering views
function hoganPartials() {
    return {
        head : 'common/head',
        mainHeader : 'common/mainHeader',
        mainFooter : 'common/mainFooter'
    };
};

app.use('/files', express.static(__dirname + '/files'));

app.get('/about', function(req, res) {
    res.render('about', {
        partials: hoganPartials(),
        title : 'Title - About'
    });
});

Поэтому, когда я запускаю этот код, у меня иногда возникает случайная ошибка:

  • Если страница отображается правильно, она всегда отображается правильно, даже после обновления.
  • Если страница не отображается с ошибкой 1, каждый раз, когда я обновляюсь, она не будет отображаться с ошибкой 2.
  • Некоторые представления могут отображаться, а другие нет, даже если они имеют одни и те же части.
  • Перезапуск приложения приведет к сбросу ошибок, и некоторые виды, которые не будут отображаться при предыдущем запуске, могут работать в текущем и наоборот.
  • Отключение кэширования представления не оказывает никакого влияния.

Ошибка 1

SyntaxError: Unexpected token ( at Object.Function (<anonymous>) 
    at Object.Hogan.makePartials (/home/philaeux/dota2draft/node_modules/hogan.js/lib/compiler.js:301:28) 
    at Object.Hogan.makeTemplate (/home/philaeux/dota2draft/node_modules/hogan.js/lib/compiler.js:290:25) 
    at Object.Hogan.generate (/home/philaeux/dota2draft/node_modules/hogan.js/lib/compiler.js:280:17) 
    at Object.Hogan.compile (/home/philaeux/dota2draft/node_modules/hogan.js/lib/compiler.js:416:21) 
    at Function.exports.hogan.render (/home/philaeux/dota2draft/node_modules/consolidate/lib/consolidate.js:448:56) 
    at /home/philaeux/dota2draft/node_modules/consolidate/lib/consolidate.js:144:25 
    at /home/philaeux/dota2draft/node_modules/consolidate/lib/consolidate.js:97:5 
    at fs.js:271:14 
    at Object.oncomplete (fs.js:107:15)

Ошибка 2

SyntaxError: Unexpected token ( at Object.Function (<anonymous>) 
    at Object.Hogan.makePartials (/home/philaeux/dota2draft/node_modules/hogan.js/lib/compiler.js:301:28) 
    at Object.Hogan.makeTemplate (/home/philaeux/dota2draft/node_modules/hogan.js/lib/compiler.js:290:25) 
    at Object.Hogan.generate (/home/philaeux/dota2draft/node_modules/hogan.js/lib/compiler.js:280:17) 
    at Object.Hogan.compile (/home/philaeux/dota2draft/node_modules/hogan.js/lib/compiler.js:416:21) 
    at Function.exports.hogan.render (/home/philaeux/dota2draft/node_modules/consolidate/lib/consolidate.js:448:56) 
    at /home/philaeux/dota2draft/node_modules/consolidate/lib/consolidate.js:144:25 
    at read (/home/philaeux/dota2draft/node_modules/consolidate/lib/consolidate.js:91:22) 
    at /home/philaeux/dota2draft/node_modules/consolidate/lib/consolidate.js:142:9 
    at next (/home/philaeux/dota2draft/node_modules/consolidate/lib/consolidate.js:117:38)

Я пытался понизить некоторые библиотеки безуспешно. Я не могу вспомнить, с какой версии я начинал (вероятно, экспресс < 4.0.0). Я полностью потерян на этом...
Спасибо за ваше время.

0 ответов

Другие вопросы по тегам