Ошибки компилятора CoffeeScript подавлены в Node 0.5.10-pre

#coffeescript

#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)
  

На данный момент это просто игрушечный скрипт для тестирования системы, поэтому я обычно могу просто экспериментировать, пока он не заработает снова, но это было бы невозможно в файле любого размера. Есть ли какой-то трюк, который я не вижу, чтобы получить строку, в которой произошла ошибка?

Спасибо!

Комментарии:

1. Можете ли вы показать нам, как выглядит Test.coffee?

Ответ №1:

последняя версия от node не полностью совместима с cs .. модуль node_stdio был удален … простой способ исправить это открыт /usr/local/lib/node_modules/coffee-script/lib/command.js и измените строку 15

process.binding(‘stdio’).Ошибка записи (строка ‘n’)

для

process.stderr.write(строка ‘n’)

вы всегда можете получить дополнительную помощь в разделе проблем github https://github.com/jashkenas/coffee-script/commit/c77f7737a5d94a05a999109810ea7634f540e1e2

удачи и удачного кодирования

Ответ №2:

Это не похоже на проблему синтаксиса. Ошибка исходит из command.js , что определяет утилиту coffee командной строки. Если бы это была ошибка компилятора, это было бы from coffee-script.js .

Итак, почему process.binding('stdio') бит command.js не работает? Есть две возможности, о которых я могу подумать:

  1. Вы используете странную оболочку (или странно настроенную), которая плохо сочетается с версией stdio узла. Это кажется маловероятным, но это возможно…
  2. Вы используете версию Node.js с этим CoffeeScript в настоящее время не совместим. Что вы получаете, когда делаете node -v ? Ваша самая безопасная ставка — последняя версия 0.4.x, поскольку это стабильные версии (0.5.x является экспериментальным).

Комментарии:

1. Ах, я вижу, это, вероятно, оно. Я на версии 0.5.10-pre; большинство инструкций, которые я нашел для его настройки, были сосредоточены вокруг проверки репозитория git. Есть ли лучший способ?

2. Хорошо, я запустил git checkout v0.4.12 свой каталог проверки, а затем перестроил, и, похоже, теперь он намного лучше. Спасибо!

Ответ №3:

Этот вопрос задан некоторое время назад.

Узел 0.6.x выдает аналогичную ошибку с CoffeeScript 1.1.x; обновление до 1.3.x делает свое дело.

Ответ №4:

Вероятно, в вашей системе 2 разных coffee-скрипта. проверьте, какой кофе, затем отследите более старый и заморозьте его. У меня была одна из установок прошлым летом (версия 1), теперь все прояснилось.