Сопоставление источников в 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 error]()
![cs no error]()
Ответы
Ответ 1
Я просто ответил на свой вопрос, очень похожий на ваш. Вы можете посмотреть здесь.
Решение, которое я использую, заключается в том, чтобы конкат/компилировать весь мой coffeescript с помощью браузера, используя параметр coffeeify в качестве опции преобразования. Если для параметра debug установлено значение true в браузере, все ваши номера строк должны вернуться к правильной строке в исходном источнике coffeescript.
Ответ 2
Я обнаружил, что проблема возникает только при первом открытии консоли Chrome.
Если вы обновите браузер, когда консоль открыта, консоль обновит ссылки на файлы с отображением исходного кода.
Кроме того, если вы сначала откроете консоль и затем перейдете на страницу, консоль обновит ссылки на исходные сопоставленные файлы.
Это проблема, связанная с открытием консоли Chrome в первый раз.