我已经将app.js
重命名为app.coffee
(以及翻译的内容),但现在当我编译时,我得到这个错误:
Running "validate-imports:tests" (validate-imports) task
>> client/tests/helpers/start-app: Cannot find module "client/app"
当我把文件翻译回javascript时,这个错误就消失了。
我已经添加了grunt-contrib-coffee
并确认它正常工作,我认为的问题是,咖啡脚本编译发生在validate-imports
任务之后,该任务在app文件夹中查找.js文件。这是否需要调整,看看在tmp/javascripts
文件夹的咖啡脚本得到编译到?
下面是正在讨论的任务:
// Scripts
grunt.registerTask('buildScripts', filterAvailable([
'jshint:app',
'jshint:tests',
'validate-imports:app',
'validate-imports:tests',
'coffee',
'emberscript',
'copy:javascriptToTmp',
'transpile',
'concat_sourcemap'
]));
有人知道这个bug吗?
我在这里找到了答案。因此,当我尝试时,我将start-app.js
重命名为start-app.coffee
,将代码转换为coffescript,现在它可以正常工作,没有那个错误。
一种方法是将这一行添加到系统中。json文件:
"before_tests": "coffee -c tests/**/*.coffee"
这应该在测试执行之前编译您的/tests
目录中的.coffee文件,这意味着它们将在运行之前编译到它们的等效.js
。虽然您可以使用类似的技巧将EAK样板从.js
更改为.coffee
,但最好在.coffee
中编写测试,同时保留默认的.js
测试工具以保持与EAK的兼容性。
您还可以在测试运行结束时删除这些文件,如tapas-with-ember系统中所示。json文件。