Как я могу включить исходную карту для coffeescript?
Недавно я обнаружил существование исходных карт в chrome через исходную отладку на языке haxe. Он позволяет отлаживать сгенерированный javascript внутри браузера Chrome, видя причину ошибки в исходном исходном коде.
Кто-нибудь написал генератор исходной карты для coffeescript/Может ли отображаться источник coffeescript?
Это поможет отладить javascript, сгенерированный coffeescript.
Ответы
Ответ 1
Это уже давно стало проблемой в проекте CoffeeScript (действительно, оно предшествует стандарту исходной карты). Однако пока нет (полного) генератора исходных кодов CoffeeScript. Для обсуждения см. https://github.com/jashkenas/coffee-script/issues/558
Поддержка исходных карт также является одной из целей компилятора "CoffeeScript Redux", который недавно был профинансирован на Kickstarter (см. http://www.kickstarter.com/projects/michaelficarra/make-a-better-coffeescript-compiler). Этот проект только начался; вы можете посмотреть его на https://github.com/michaelficarra/CoffeeScriptRedux
Ответ 2
Coffeescript 1.6 имеет встроенную поддержку исходных карт.
Используйте параметр "--map" или "-m", чтобы включить его. Или, если вы используете компилятор npm, вам нужно добавить параметр sourceMap: true
.
Ответ 3
npm install -g coffee-script
Должен установить coffee- script в качестве глобального модуля. Проверьте версию > 1.6, набрав
coffee -v
Если вам нужна помощь, которую вы можете использовать. Используйте его, чтобы увидеть значение параметров, используемых ниже.
coffee -h
Для регулярной компиляции используйте
coffee -mo script/ -cw src/
Это должно автоматически создавать файлы карт. Я оставляю это в терминале, как я код, он компилируется каждый раз, когда я сохраняю.
ИЗВЕСТНЫЙ БУГ:
В текущем компиляторе coffee- script, похоже, не обрабатываются разные директории /src и/script. В файле карты вы обнаружите, что sources = {filename}, а не {относительный путь к файлу}.
РЕШЕНИЕ:
- Сохраните файлы .coffee в том же каталоге, что и .js
- Измените директиву источника вручную в файле .map. Это будет перезаписано снова при следующем сохранении.
Ответ 4
Ps, если вы на vim, используйте:
au BufWritePost *.coffee silent make -m
который компилируется с исходной картой при сохранении файла. Я нашел его чрезвычайно удобным, когда я хочу, чтобы какой-то случайный буфер начал компилировать кофе для меня.