2

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

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

nodemon app.js 

我有以下文件结构

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

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

然后我找到了这篇文章,所以我尝试了

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

它工作正常,但如果我尝试

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

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

知道如何让 nodemon 选择咖啡脚本文件更改,或者让咖啡编译器递归地选择文件吗?

4

3 回答 3

3

如果您明确指定扩展名为-e js,coffee. 这与文档状态相反,我已经在此问题上提交了一张票:https ://github.com/remy/nodemon/issues/312

于 2014-03-18T18:51:08.573 回答
2

这应该有效:

coffee --watch --compile ./

此外,您可以将标志缩短为-wc.

于 2013-03-18T05:41:08.993 回答
1

您正在做的事情在咖啡脚本库中很常见。许多库都有一个脚本,可以将一个目录中的所有咖啡脚本文件编译为另一个目录中的 Javascript 文件。例如,以下从toCakefile编译。你可以或取决于你想做什么。src/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()

但是,如果您没有运行节点,而是实际运行浏览器应用程序,我建议您使用奇妙的hem。为此,我还在这里写了一个入门指南:https ://stackoverflow.com/a/14993583/586086

于 2013-03-18T05:40:25.250 回答