【问题标题】:autocompile .coffee files and reload project自动编译 .coffee 文件并重新加载项目
【发布时间】:2013-03-06 09:45:11
【问题描述】:

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

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

nodemon app.js 

我有以下文件结构

app.js 控制器/ 平咖啡 test.js

nodemon's homepage 中说它支持coffeescript,但我更改了文件,它不会重新加载。

然后我找到this article,所以我尝试了

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

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

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

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

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

【问题讨论】:

    标签: node.js coffeescript node-modules


    【解决方案1】:

    您正在做的事情在咖啡脚本库中很常见。许多库都有一个脚本,可以将一个目录中的所有咖啡脚本文件编译为另一个目录中的 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()
    

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

    【讨论】:

      【解决方案2】:

      这应该有效:

      coffee --watch --compile ./
      

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

      【讨论】:

        【解决方案3】:

        如果您使用-e js,coffee 明确指定它们的扩展名,Nodemon 将正确监视咖啡脚本文件。这与文档声明的内容背道而驰,我已在此处提交了有关此问题的票:https://github.com/remy/nodemon/issues/312

        【讨论】:

        • 使用$nodemon app.js -e coffee运行
        猜你喜欢
        • 1970-01-01
        • 2016-07-29
        • 1970-01-01
        • 2013-11-05
        • 1970-01-01
        • 1970-01-01
        • 2012-09-22
        • 1970-01-01
        • 2022-07-08
        相关资源
        最近更新 更多