在节点0.5.10-pre下抑制了CoffeeScript编译器错误

时间:2011-10-17 18:25:38

标签: coffeescript

当我的脚本由于任何原因无法解析时,我从编译器获得了一个堆栈跟踪,根本没有深入了解我的脚本中问题所在的位置:

mpurvis@citadel:~/coffee$ coffee -c Test.coffee

/usr/local/lib/node_modules/coffee-script/lib/command.js:15
    return process.binding('stdio').writeError(line + '\n');
                   ^
Error: No such module
    at /usr/local/lib/node_modules/coffee-script/lib/command.js:15:20
    at /usr/local/lib/node_modules/coffee-script/lib/command.js:167:7
    at /usr/local/lib/node_modules/coffee-script/lib/command.js:115:26
    at [object Object].<anonymous> (fs.js:108:5)
    at [object Object].emit (events.js:64:17)
    at afterRead (fs.js:1074:12)
    at Object.wrapper [as oncomplete] (fs.js:246:17)

现在,它只是一个玩具脚本来尝试系统,所以我通常可以尝试直到它再次工作,但这在任何大小的文件中都是不可能的。是否有一些技巧我没有看到发生错误的行?

谢谢!

4 个答案:

答案 0 :(得分:5)

来自节点的最新版本与cs不完全兼容...已删除了node_stdio模块...一个简单的修复方法是打开/ usr / local / lib / node_modules / coffee-script / lib / command。 js并更改第15行

process.binding('stdio')。writeError(line +'\ n')

process.stderr.write(line +'\ n')

总是可以从github问题部分获得更多帮助 https://github.com/jashkenas/coffee-script/commit/c77f7737a5d94a05a999109810ea7634f540e1e2

祝你好运,编码愉快

答案 1 :(得分:3)

这看起来不像语法问题。错误来自command.js,这是coffee命令行实用程序的定义。如果是编译器错误,则它来自coffee-script.js

那么为什么process.binding('stdio')中的command.js位失败了?我能想到两种可能性:

  1. 你正在使用一个奇怪的shell(或一个奇怪的配置),它与Node的stdio版本不搭配。这似乎不太可能,但有可能......
  2. 您正在使用CoffeeScript当前不兼容的Node.js版本。你node -v做什么?你最安全的赌注是最新的0.4.x,因为这些是稳定的版本(0.5.x是实验性的)。

答案 2 :(得分:1)

这个问题有一段时间了。

Node 0.6.x在CoffeeScript 1.1.x中引发了类似的错误;升级到1.3.x就可以了。

答案 3 :(得分:0)

您系统上可能有两种不同的咖啡脚本。检查哪个咖啡,而不是追踪旧咖啡并将其冰冻。我去年夏天安装了一个(v1.1),现在已经全部清理完了。