2

我已重命名app.jsapp.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'
                     ]));

有人知道这个错误吗?

4

2 回答 2

0

一种方法是将此行添加到您的 testem.json 文件中:

"before_tests": "coffee -c tests/**/*.coffee"

/tests这应该在测试执行之前编译您目录中的 .coffee 文件,这意味着它们将.js在运行之前编译成它们的等效文件。虽然您可以使用类似的技巧在技术上将 EAK 样板从 更改为.js.coffee但最好只在 中编写测试.coffee,同时保留默认.js测试工具以保持与 EAK 的兼容性。

您还可以在测试运行结束时删除这些文件,如tapas-with-ember testem.json文件中所示。

于 2014-03-24T17:33:21.657 回答
0

我在这里找到了答案。因此,当我尝试它时,我将其重命名start-app.jsstart-app.coffee,将代码转换为 coffescript,现在它可以正常工作而不会出现该错误。

布莱恩

于 2014-04-10T04:37:07.350 回答