#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
не работает? Есть две возможности, о которых я могу подумать:
- Вы используете странную оболочку (или странно настроенную), которая плохо сочетается с версией stdio узла. Это кажется маловероятным, но это возможно…
- Вы используете версию 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), теперь все прояснилось.