当我的脚本由于任何原因无法解析时,我从编译器获得了一个堆栈跟踪,根本没有深入了解我的脚本中问题所在的位置:
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)
现在,它只是一个玩具脚本来尝试系统,所以我通常可以尝试直到它再次工作,但这在任何大小的文件中都是不可能的。是否有一些技巧我没有看到发生错误的行?
谢谢!
答案 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
位失败了?我能想到两种可能性:
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),现在已经全部清理完了。