Open qfox opened 9 years ago
@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?
SyntaxError: Unexpected token {
at exports.techMixin.getCreateResult (/home/vagrant/bem/test-project/node_modules/bem/lib/techs/v2/bemdecl.js.js:18:37)
at /home/vagrant/bem/test-project/node_modules/bem/lib/tech/v2.js:120:41
at Array.map (native)
at exports.Tech.INHERIT.getCreateResults (/home/vagrant/bem/test-project/node_modules/bem/lib/tech/v2.js:119:47)
at exports.Tech.INHERIT.create (/home/vagrant/bem/test-project/node_modules/bem/lib/tech/v2.js:90:57)
at exports.Tech.INHERIT.createByDecl (/home/vagrant/bem/test-project/node_modules/bem/lib/tech/v2.js:77:25)
at /home/vagrant/bem/test-project/node_modules/bem/lib/commands/create.js:118:51
at Array.map (native)
at /home/vagrant/bem/test-project/node_modules/bem/lib/commands/create.js:117:40
at Array.map (native)
at Cmd. (/home/vagrant/bem/test-project/node_modules/bem/lib/commands/create.js:116:32)
at /home/vagrant/bem/test-project/node_modules/bem/node_modules/coa/lib/cmd.js:483:22
at _fulfilled (/home/vagrant/bem/test-project/node_modules/bem/node_modules/q/q.js:798:54)
at self.promiseDispatch.done (/home/vagrant/bem/test-project/node_modules/bem/node_modules/q/q.js:827:30)
at Promise.promise.promiseDispatch (/home/vagrant/bem/test-project/node_modules/bem/node_modules/q/q.js:760:13)
at /home/vagrant/bem/test-project/node_modules/bem/node_modules/q/q.js:574:44
at flush (/home/vagrant/bem/test-project/node_modules/bem/node_modules/q/q.js:108:17)
at process._tickCallback (node.js:419:13)
Не указан даже файл в котором ошибка, не то что номер строки. Пропустил запятую и вынужден вчитываться в каждую строчку. Нет ли какого-то валидатора?
@sefus BEMJSON — это самый обычный JS, поэтому его валидировать можно любым валидатором JS от jslint/jshint до подсветки в IDE и запуска в консоли:
node -e "require('./desktop.bundles/index/index.bemjson.js')"
/Users/tadatuta/Sites/pr-stub-update/desktop.bundles/index/index.bemjson.js:12
content : [
^^^^^^^
SyntaxError: Unexpected identifier
node -e "require('...
? Мусье знает толк... ;-) есть еще тема:
sh -c "node -e "\""require('child_process').execFile('node', ['-e', 'require(\'./index.bemjson.js\')'], console.log);\""
@tadatuta спасибо, node поможет. По крайней мере пока я правлю один файл.
@sefus Если sublime2,3 — то https://github.com/SublimeLinter/SublimeLinter3 + https://github.com/SublimeLinter/SublimeLinter-jshint + https://github.com/jshint/jshint
Вижу на странице:
Реально ли собирать sourcemaps и при таких выбросах резолвить файлы/строки вменяемо?