我有一个在节点中开发的小型Web服务,我想用coffeescript编写一些文件,开始玩它。
我正在使用nodemon来运行应用程序,就像这样
nodemon app.js
我有以下文件结构
app.js 控制器/ ping.coffee test.js
在nodemon's homepage中它表示它支持coffeescript,但我更改了文件并且不会重新加载。
然后我找到了this article,所以我尝试了
$ coffee --watch --compile ./controllers/*.coffee
它工作正常,但如果我尝试
$ coffee --watch --compile ./*.coffee
File not found: ./*.coffee
因此看起来监视选项不是递归的。
任何想法如何让nodemon选择coffeescript文件更改,或让咖啡编译器递归选择文件?
答案 0 :(得分:3)
如果您使用-e js,coffee
明确指定其扩展名,Nodemon将正确观看coffeescript文件。这与文档说明的内容相反,我在这里就此问题提交了一张票:https://github.com/remy/nodemon/issues/312
答案 1 :(得分:2)
这应该有效:
coffee --watch --compile ./
此外,您可以将标记缩短为-wc
。
答案 2 :(得分:1)
你正在做的事情在coffeescript图书馆中很常见。许多库都有一个脚本,可以将一个目录中的所有coffeescript文件编译为另一个目录中的Javascript文件。例如,以下Cakefile
从src/
编译为lib/
。您可以cake watch
或cake 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