0

我尝试从http://arcturo.github.io/library/coffeescript/05_compiling.html获取蛋糕示例来运行。但这会导致一个奇怪的错误:

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: spawn ENOENT
    at errnoException (child_process.js:980:11)
    at Process.ChildProcess._handle.onexit (child_process.js:771:34)

这是我的 Cakefile(刚刚从“关于 CoffeeSCript 的小书”复制而来)

fs = require 'fs'

{print} = require 'sys'
{spawn} = require 'child_process'

build = (callback) ->
  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 'build', 'Build lib/ from src/', ->
  build()

我正在使用 Coffee 1.6.3 和节点 0.10.20。

有谁知道我做错了什么?谢谢!

4

3 回答 3

1

ENOENT 通常表示“我正在寻找你告诉我要找到的东西,但我没有找到它”。从示例页面:

For example, create a file called Cakefile, and two directories, lib and src.

你有这两个吗?

于 2013-10-09T17:02:10.883 回答
0

我找到了这里发生的事情的解释:

使用 nodejs 的 spawn 会导致“unknown option --”和“[Error: spawn ENOENT]”错误

解决方案是使用exec而不是spawn

于 2013-10-10T20:24:51.853 回答
0

在 Windows 上,spawn 不处理没有文件扩展名的“.cmd”或“.bat”。

替换

coffee = spawn 'coffee', ['-c', '-o', 'lib', 'src']

coffee = spwan 'coffee.cmd', ['-c','-o','lib','src']
于 2016-01-25T06:38:43.483 回答