Исходные карты CoffeeScript указывают на неправильные файлы

#coffeescript #source-maps #brunch

#coffeescript #исходные карты #поздний завтрак

Вопрос:

Я создаю проект coffee-script с brunch@1.7.14 и coffee-script-brunch@1.8 , со всеми настройками по умолчанию.

Затем я запускаю проект и получаю ошибку где-то в глубине.

И когда я смотрю на stacktrace, я вижу что-то вроде этого:

 module.exports.View.render          jquery.idle-timer.js:24
module.exports.View.afterInitialize jquery.center.js:51
instance.(anonymous function)       jquery.center.js:7
Backbone.View                       jquery-ui.js:1878
View                                jquery.center.js:23
  

Что это за безумие?

Ожидается, что ссылки справа указывают на что-то вроде app/some/path/view.coffee, а не на плагины jquery (которые даже не использовались в данном конкретном случае).

Как это исправить?

Upd.

Это происходит в Chrome и Safari. Я уже перепробовал все coffee-script версии, начиная с 1.3.3 , и coffee-script-brunch начиная с 1.4.0 . Все, что у меня есть, это немного разные номера строк в stacktrace, но они все равно неверны.

Что еще более интересно, в тестовом проекте с тремя модулями все работает идеально — stacktrace указывает именно на строку, которая выдает ошибку. В большом проекте все неправильно. Я не понимаю, как это может быть.

Upd.2

Ну, я обнаружил, что исходные карты скомпилированы неправильно.

Когда я создаю тот же проект с той же версией всех пакетов на другом компьютере, а затем просто помещаю скомпилированные там исходные карты на свой компьютер — все работает идеально.

Как я заметил выше, я уже пытался переустановить все пакеты, которые могут быть задействованы здесь. Я даже пытался переустановить Node.js , простым способом — brew uninstall node , brew install node . Это не помогло.

Итак, что еще можно обновить / переустановить / очистить / и т.д., Чтобы устранить эту проблему?

Upd.3

Хорошо… Кажется, это своего рода волшебство. Я создал чистую виртуальную машину с Ubuntu, клонировал проект и создал его. В абсолютно чистой среде.

С теми же результатами.

Я не знаю, что, черт возьми, происходит, теперь я полагаю, что даже если я переустановлю ОС, это не поможет. Возможно, покупка нового компьютера может решить проблему, я не знаю…

Ответ №1:

Неожиданно, но я нашел ответ.

Единственная причина была в пакете source-map, который находится в brunch зависимостях.

Я пробовал только две последние версии brunch: 1.7.13 и 1.7.14. Для обеих требуется source-map версия ~0.1.26 . На данный момент это разрешено 0.1.34 везде, где вы устанавливаете бранч.

И это корень зла.

На самом деле я вручную заменил 0.1.34 на 0.1.33 непосредственно в глобальной brunch/node_modules папке.

И это все. После этого все волшебным образом исправлено, и мои исходные карты снова указывают на правильные строки.

Не знаю, ПОЧЕМУ это так — может быть, source-map@0.1.34 сломан. Но это действительно работает.