我正在使用车把模板预编译器进行 express ( https://github.com/diffsky/hbsc ) 在 nodejs 中预编译我的模板。
当我在本地执行它时效果很好,但是当我在 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 处理的方式有所不同。
这个错误真的让我很困惑,因为我发现它没有逻辑。任何人都可以帮助我了解从哪里开始解决这个问题吗?