Получение дополнительной информации Фро м PhantomJS
Следующая версия PhantomJS (предположительно это будет 1.9.8, что приходит после 1.9.7) будут ошибки вывода, как это:
SyntaxError: Parse error
http://localhost:9000/scripts/49e8b4f4.vendor.js:8
Так что это немного более полезным, чем текущее сообщение ,
К сожалению, нет никаких ночных сборников для PhantomJS, поэтому в это время вам нужно будет скомпилировать свою собственную версию мастера, если вы хотите попробовать это.
Debugging уменьшенный файлы
Если вы работаете с уменьшенным файлом, часто номер строки не будет очень полезным, и часто отладки неразделанной уменьшенной файл не дадите вам синтаксическую ошибки.
Чтобы решить эту проблему, как только вы получите phantomjs дать вам имя файла, вы можете использовать online demo of Esprima, чтобы получить фактический разбор кода JavaScript:
http://esprima.org/demo/parse.html
От там, вы можете введите стратегические разрывы для изоляции фактической ошибки.
Lint Инструменты Sub-оптимальна для этого потребительной случае
Инструмент ворса как JSLint или jshint более самоуверенны, чем реальный синтаксический анализатор, так что если вы ищете очень специфической синтаксической ошибки, я бы рекомендуем использовать реальный парсер, так как он будет проверять только на правильность кода и не ущемляющие рекомендации по стилю. Я не подразумеваю, что инструменты lint не имеют ценности, просто они не будут столь же полезны для решения этой проблемы.
Это быстрый и умный способ запуска локальной проверки синтаксиса в js-файлах. Я нахожу это намного быстрее, чем онлайн-инструменты, плюс он не упрям. недостаток нужен узлу, но я подозреваю, что у большинства разработчиков phantomjs будет установлен узел. – danmux
Что произойдет, если узел встретит какое-то окно глобального? Или если фантом, который работает .. хром? это другая версия для узла? Это нормально для некоторых основных случаев. Я думаю, –
мой рецепт на всех make-файлах: 'find src/js/-name \ * js -exec node \ {\} \; 2> & 1 | grep -B 5 СинтаксисError || exit 0 && exit 1; 'оно не будет выполнено. Создайте правило, если есть какая-либо синтаксическая ошибка, и покажите вам, где это происходит. – gcb