我很喜欢emberjs,并希望在我的几个小型移动应用程序中采取下一步,并预编译我的Ember/Handlebars模板,作为构建过程的一部分.
我宁愿远离搞乱Ruby,也不想使用node.js,因为我更习惯使用它.
我相信我想要使用的是Ember.Handlebars.precompile,但遗憾的是我无法在节点环境中加载规范的ember.js文件.来自节点repl的天真尝试示例:
> var e = require('./ember');
ReferenceError: window is not defined
at /Users/jeremyosborne/git/projects/ldls/client/lib/emberjs/src/ember.js:5:1
at Object.<anonymous> (/Users/jeremyosborne/git/projects/ldls/client/lib/emberjs/src/ember.js:1596:2)
--- stack trace, you get the idea ---
Run Code Online (Sandbox Code Playgroud)
我想我已经找到了如何在我的代码中设置它们以便它们能够正确处理我的视图,我只想在浏览器DOM之外的环境中编译它们.
代替将规范的ember.js加载到节点中,是否有一组特定的文件可以从ember repo中获取并用于编译我的模板?
编辑
我做了一个很好的修复工具,但是可维护性得到了F.我抓住所有Handlebars
代码减去window
对象的引用.然后,我跟着一起Ember.Handlebars.Compiler
代码,替换Ember.create
用Object.create
,我的出口Ember
对象,中提琴工作的事情在节点看似巨大(如在它的工作原理和所产生的功能模板).但由于前面提到的维护失误,我不认为这是对我自己的问题的答案,所以仍然可以回答.
编辑2
以上结果证明是完全失败.也许这个程序有问题,但使用Ember.Handlebars.precompile
或Ember.Handlebars.compile
不起作用.模板已经完成,但是当我在代码中使用附加到Ember.TEMPLATES的预编译模板时,它们不起作用.我们似乎只能在修改后的脚本标记中明确传递模板时才能使模板工作,如emberjs.com网站上所示.
编辑3 我弄清楚我做错了什么.我的答案如下.
我想要一个正则表达式,我将在Python re模块中使用它,它将在python文件中查找python函数调用,但是我会寻找函数调用的警告.
以下是我想在文件中查找的函数的示例用法:
# Simple function call.
f("_key")
# The chained function call, in the simplest format (no args).
f("_key").g()
# The chained function call with simple arguments.
f("_key").g("hello", 1337)
# The chained function call with possible, more complex arguments
f("_key").g(obj.blah(), {"dog":"cat"})
# And then the possibility for long function calls to extend over one line
f("_key").g(
"dogs",
"cats",
{"living":"together"})
Run Code Online (Sandbox Code Playgroud)
通常的免责声明:我对此进行了搜索,问题与我的关系很接近,但我想知道我的需求是否足以绕过"常规与非常规"语言问题.这就是我不是计算机科学专业并且害怕正则表达式的原因.