简单的方法来使用没有节点的Jade模板?
TL;博士
有没有像其他JavaScript模板引擎(例如,小胡子,把手或Nunjucks)一样使用Jade完全客户端的方式,以便通过ajax加载包括?
更多信息:
我有一个不在Node上运行的Web应用程序(不幸的是由于各种供应商没有为Node提供库),我真的开始喜欢Jade的语法和function。 不幸的是,似乎Jade中的所有东西都需要某个节点,无论是在开发stream程还是在服务器端。 我绝对不能在服务器端使用它,并且不希望将其引入到仅用于模板的开发周期中。
似乎所有这一切都需要打包依赖(这可以通过browserify来完成),并实现fs来读取带有ajax的文件。 有没有这个实施?
另外,每个文件每次编译一次所花费的时间对于这个应用程序来说并不是真正的问题。
我实际上已经find了完成这个的方式,完全在客户端:
- 使用browserify CDN获取节点包的客户端软件包。
- 在bundle的'fs'模块中实现'readFileSync'函数来使用一个同步的XmlHttpRequest并从服务器检索文件(它当前是空的,所以没有函数存在)
中提琴!
更新:
这是我的实现:
2:[function(require,module,exports){ module.exports = { cache: { }, readFileSync: function(path){ return this.cache[path] || (this.cache[path] = (function(){ var request = new XMLHttpRequest(); request.open('GET', path + '?_=' + $.time(), false); request.send(); if (request.status === 200) { return request.responseText; } else { throw 'Unable to load template: ' + path; } }).call()); } }},{}]