Сопоставление источников в Coffeescript - ошибки, не привязанные к источнику

Я просто узнал об исходном сопоставлении - долгожданной функции. Я впечатлен тем, что так много людей собралось, чтобы это произошло для кофе - script (браузеры, проект кикстарта и т.д.)

Я установил небольшой тест, чтобы понять, как его использовать...

CoffeeScript

N.B. здесь преднамеренная ошибка, поскольку y не определен

console.log 123

sq = (x)->
  x * x

console.log "thats how easy: "+sq y

Карта источника

{
  "version": 3,
  "file": "test.js",
  "sourceRoot": "",
  "sources": [
    "test.coffee"
  ],
  "names": [],
  "mappings": ";AAAA;CAAA,CAAA,IAAA;CAAA;CAAA,CAAA,CAAA,IAAO;;CAAP,CAEA,CAAK,MAAC;CACJ,EAAI,QAAJ;CAHF,EAEK;;CAFL,CAKA,CAAA,IAAO,WAAK;CALZ"
}

Javascript

// Generated by CoffeeScript 1.6.1
(function() {
  var sq;

  console.log(123);

  sq = function(x) {
    return x * x;
  };

  console.log("thats how easy: " + sq(y));

}).call(this);
//@ sourceMappingURL=test.map

Jade

html
  head
    script(src="test.js")
  body
    h1 Test Page

Все это, кажется, работает, потому что отображается источник кофе script, и я даже могу установить точки останова (но изображение, похоже, не отображается, и кажется немного нерегулярным, когда точки останова задаются в Javascript).

Проблема, с которой я столкнулась, заключается в том, что при возникновении ошибки консоль сообщает номер строки javascript файла. Как узнать строку источника кофе script, которая вызывает ошибку?

Я использую версию Google Chrome 23.0.1271.101 в OSX 10.8.2

js errorcs no error

Ответ 1

Я просто ответил на свой вопрос, очень похожий на ваш. Вы можете посмотреть здесь.

Решение, которое я использую, заключается в том, чтобы конкат/компилировать весь мой coffeescript с помощью браузера, используя параметр coffeeify в качестве опции преобразования. Если для параметра debug установлено значение true в браузере, все ваши номера строк должны вернуться к правильной строке в исходном источнике coffeescript.

Ответ 2

Я обнаружил, что проблема возникает только при первом открытии консоли Chrome.

Если вы обновите браузер, когда консоль открыта, консоль обновит ссылки на файлы с отображением исходного кода.

Кроме того, если вы сначала откроете консоль и затем перейдете на страницу, консоль обновит ссылки на исходные сопоставленные файлы.

Это проблема, связанная с открытием консоли Chrome в первый раз.