Отладка источников CoffeeScript с помощью нода-инспектора
Некоторое время я использую CoffeeScript для написания программ Node.js. Это нормально для отладки node-inspector
если я скомпилирую источники с Source Maps.
Однако когда я пытаюсь создать смешанное приложение Javascript/CoffeeScript, используя coffee-script/register
:
#!/usr/bin/env node
require('coffee-script/register');
require('../src/client');
Затем узел-инспектор показывает скомпилированный Javascript.
Есть ли как увидеть реальный *.coffee
источники в node-inspector
когда я не эксплицирую это компилирую?
1 ответ
Отказ от ответственности: я сопровождающий Node Inspector
Для того, чтобы увидеть актуальный *.coffee
файл в Node Inspector, вам нужно предоставить файл исходной карты, описывающий, как отобразить переносимый javascript, загруженный во время выполнения Node/V8, на ваш источник кофе-скрипта. Кроме того, имя файла переданного JavaScript должно отличаться от исходного имени сценария (AFAIK).
Это беда с require('coffee-script/register')
: он преобразует источник кофе-скрипта в источник javascript, сохраняя то же имя файла. Другими словами, среда выполнения (и Node Inspector) видят, что ваш *.coffee
содержит транслируемый javascript, поэтому он не может отображать ваш кофейный скрипт с тем же именем файла. Также AFAIK, компилятор кофе в этом случае не генерирует карту источника.
Я вижу два возможных подхода к решению проблемы:
изменять
loadFile()
вcoffee-script/register
:- создать исходную карту и сохранить ее в файл
- передать другое имя файла
module._compile
например,script.coffee.js
изменять
coffee-script/register
испускать встроенную исходную карту. Исправьте Chrome DevTools и / или Node Inspector для поддержки встроенных исходных карт.
Рекомендации:
loadFile()
в кофе-скрипте / зарегистрироваться- Проблема Инспектора Узла, обсуждающая, почему
coffee --nodejs --debug app.coffee
не работает сейчас: https://github.com/node-inspector/node-inspector/issues/224 - Проблема инспектора узлов, обсуждающая карты встроенных источников: https://github.com/node-inspector/node-inspector/issues/401