2

名前を変更app.jsしましたapp.coffee(内容を翻訳しただけでなく)が、コンパイルすると次のエラーが発生します。

Running "validate-imports:tests" (validate-imports) task
>> client/tests/helpers/start-app: Cannot find module "client/app"

このエラーは、ファイルを JavaScript に戻すと消えます。

を追加し、正しく動作することを確認しました。問題は、app フォルダー内の .js ファイルを検索grunt-contrib-coffeeするタスクの後に coffee-script のコンパイルが行われることです。coffee-script がコンパイルされるフォルダvalidate-importsを調べるために、これを微調整する必要がありますか?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

ここで答えを見つけました。したがって、試してみたときに、名前を に変更start-app.jsstart-app.coffee、コードを coffescript に変換したところ、そのエラーなしで動作するようになりました。

ブライアン

于 2014-04-10T04:37:07.350 に答える
0

これに対する 1 つのアプローチは、次の行を testem.json ファイルに追加することです。

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

/testsこれにより、テストの実行前にディレクトリ内の .coffee ファイルがコンパイルされます。つまり、実行前に同等のファイルにコンパイルされ.jsます。技術的には EAK ボイラープレートを同様のトリックで から.jsに変更することもできますが、EAK との互換性を維持するためにデフォルトのテスト ハーネスを残したまま、 で.coffeeテストを記述する方がよい場合があります。.coffee.js

これらのファイルは、 tapas-with-ember testem.jsonファイルに示されているように、テストの実行が終了したときに削除することもできます。

于 2014-03-24T17:33:21.657 に答える