Вижу на странице:
TypeError: Cannot read property '0' of undefined
at __$b29.iterateItems__$69 (.../users-list.bemhtml.js:501:46)
at __$b29.iterateItems__$69 (.../users-list.bemhtml.js:509:21)
at __$b29 (.../users-list.bemhtml.js:513:9)
at __$g2 (.../users-list.bemhtml.js:1028:24)
at applyc (.../users-list.bemhtml.js:33:20)
at __$b75 (.../users-list.bemhtml.js:809:5)
at applyc (.../users-list.bemhtml.js:105:20)
at __$lb__$160 (.../users-list.bemhtml.js:784:22)
at __$b74 (.../users-list.bemhtml.js:787:7)
at applyc (.../users-list.bemhtml.js:102:24)
Реально ли собирать sourcemaps и при таких выбросах резолвить файлы/строки вменяемо?
@zxqfox
vi .../users-list.bemhtml.js +501
найти переменную рядом с [0], если этого уже не достаточно, подняться чуть выше — выяснить, в каком блоке проблема.piece of cake ;)
Вообще, если собирать xjst в dev-режиме, то дебажить намного проще. И sourcemaps создать проблемой не должно быть.
@apsavin Ммм, да. Я почему-то решил, что YENV все заруливает...
@tadatuta А что ты думаешь про добавить в генератор/бем-стаб проверку на
!isProd
кdevMode: BEM*_ENV === 'development'
?@zxqfox я даже в девелопменте обычно собираю шаблоны в продакшен-режиме и переключаюсь на devMode только когда нужно подебажить что-то сложное, поэтому скорее против. но если ты пишешь какой-то динамический проект, предложу использовать
nodemon
и задавать переменные окружения через его конфиг — тогда ты не завязан на умолчания.@tadatuta тогда я категорически за sourcemaps ;-) на морде тоже пригодится, в т.ч. при сборке в prod режиме
@zxqfox мы все за sourcemaps, но как раз для production-режима запилить их не так-то просто
@tadatuta А issue уже стоит? Там неоднозначность, конечно ;-(
Были бы тесткейсы с пониманием чо куда резолвить ;-)
@zxqfox есть вот такое
А про честные сорсмапы в пост призываются @indutny и @vkz
:+1: Дебажиться ок. Но конечно можно улучшить этот момент ;)
А если ошибка в bemjson?
Не указан даже файл в котором ошибка, не то что номер строки. Пропустил запятую и вынужден вчитываться в каждую строчку. Нет ли какого-то валидатора?
@sefus BEMJSON — это самый обычный JS, поэтому его валидировать можно любым валидатором JS от jslint/jshint до подсветки в IDE и запуска в консоли:
node -e "require('...
? Мусье знает толк... ;-) есть еще тема:@tadatuta спасибо, node поможет. По крайней мере пока я правлю один файл.
@sefus Если sublime2,3 — то https://github.com/SublimeLinter/SublimeLinter3 + https://github.com/SublimeLinter/SublimeLinter-jshint + https://github.com/jshint/jshint