自动编译.coffee文件并重新加载项目



我有一个用node开发的小型web服务,我想用coffeescript编写一些文件,开始使用它。

我使用nodemon来运行应用程序,像这样

nodemon app.js 

文件结构如下

app.js控制器/ping.coffee. js

在nodemon的主页上,它说它支持coffeescript,但是我改变了文件,它不会被重新加载。

然后我发现了这篇文章,所以我试着用

$ coffee --watch --compile ./controllers/*.coffee

效果很好,但是如果我尝试用

$ coffee --watch --compile ./*.coffee 
File not found: ./*.coffee

所以看起来watch选项不是递归的

任何想法我怎么能使nodemon pick coffeescript文件的变化,或有咖啡编译器递归地挑选文件?

如果您显式地使用-e js,coffee指定扩展名,Nodemon将正确地监视coffeescript文件。这与文档的状态相反,我在这里就这个问题提交了一个罚单:https://github.com/remy/nodemon/issues/312

应该可以:

coffee --watch --compile ./

也可以将标志缩短为-wc

您所做的在coffeescript库中很常见。许多库都有一个脚本,可以将一个目录中的所有coffeescript文件编译为另一个目录中的Javascript文件。例如,Cakefilesrc/编译为lib/。你可以选择cake watchcake build,这取决于你想做什么。

{print} = require 'util'
{spawn} = require 'child_process'
task 'build', 'Build lib/ from src/', ->
  coffee = spawn 'coffee', ['-c', '-o', 'lib', 'src']
  coffee.stderr.on 'data', (data) ->
    process.stderr.write data.toString()
  coffee.stdout.on 'data', (data) ->
    print data.toString()
  coffee.on 'exit', (code) ->
    callback?() if code is 0
task 'watch', 'Watch src/ for changes', ->
  coffee_src = spawn 'coffee', ['-w', '-c', '-o', 'lib', 'src']
  coffee_src.stderr.on 'data', (data) -> process.stderr.write data.toString()
  coffee_src.stdout.on 'data', (data) -> print data.toString()

然而,如果你不是在运行node,而是在运行一个浏览器应用程序,我建议使用神奇的hem。为此,我还在这里编写了入门指南:https://stackoverflow.com/a/14993583/586086

相关内容

最新更新