Meteor CoffeeScript生成重复文件

时间:2013-09-17 03:06:28

标签: javascript coffeescript meteor

刚开始探索Meteor,然后我就有了一些让我陷入困境的东西:

1)我安装了它并运行meteor add coffeescript

2)我将myapp.js文件转换为.coffee。

3)我保存了文件。

此时,Meteor通过编译coffeescript文件生成一个新的myapp.js文件。好的,这似乎合乎逻辑。

4)我跑了meteor。我在localhost:3000看到了应用,但是如果我点击按钮,按钮点击事件就会触发两次:一次来自myapp.js,一次来自myapp.coffee

只是为了看一个测试我添加了这个:

Template.hello.events "click input": ->
  # template data, if any, is available in 'this'
  console.log "You pressed the button"  if typeof console isnt "undefined"
  $('body').append('<div>test</div>')

当我点击按钮时,会添加两个div。

现在,如果我删除已编译的myapp.js文件,则“您按下按钮”仅触发一次,并且只有一个div附加到页面。但是,如果我保存.coffee文件,每次都会生成一个新的.js文件,现在所有的JS都会执行两次。

你如何使用CoffeeScript和Meteor,所以你的代码只执行一次?

3 个答案:

答案 0 :(得分:2)

当我使用webstorm,一个商业文本编辑器时,我选择让filewatcher自动生成来自coffeescript的js。如果它是自动生成的,那么你的编辑器会生成js,但是流星认为应该寻找js或者咖啡。

简而言之,可能会从文本编辑器中删除文件监视器/咖啡转换器以获取coffeescript项目。或者,从流星中删除coffeescript包。不是两个

答案 1 :(得分:0)

如果您确定从名为myapp.js

的文件中抛出了另一个,那么您可能还没有删除原来的myapp.js

coffeescript编译的js文件应为myapp.coffee.js(您只能在chrome的Web检查器中看到)。

你也应该没有在你的项目目录中看到这些已编译的js文件,如果他们在你保存.coffee时就来了,那么他们就是你的流氓文件,也许来自你的代码ide?。

Meteor确实将coffeescript编译成js,但是在隐藏的.meteor目录中的临时目录中。如果你正在使用coffeescript meteor,那么这种体验就好像它是javascript所以你不会注意到任何额外的文件。

答案 2 :(得分:0)

所以,我运行了meteor remove coffeescriptmeteor add coffeescript,现在它按预期工作,没有重复文件。有点奇怪,但至少它正在发挥作用!