2013-12-15 4 views
0

Я не могу найти причину, по которой мое приложение не работает при компиляции в JavaScript с помощью dart2js. Я попытался отлаживать скомпилированное приложение JavaScript с помощью Google DevTools, но было очень сложно понять как отладчик, так и код JavaScript. Вы можете найти мое веб-приложение на GitHub. Я подозреваю, что существует конфликт между скомпилированным кодом JavaScript и импортированными сторонними JS-библиотеками, такими как jquery, но не уверен. Я высоко ценю вашу помощь.«Выполнить как JavaScript» не работает с моим веб-приложением?

+0

В проекте github отсутствуют файлы (например, pubspec.yaml). Я не смог запустить его. –

+0

Спасибо, что нашли время, чтобы посмотреть на мою проблему. Я только что нажал pubspec.yaml на мой репозиторий github. Пожалуйста, дайте мне знать, можете ли вы запустить его сейчас или что-то еще нужно нажать. Спасибо. –

+0

Вы пробовали 'pub build --mode debug', чтобы предотвратить минимизацию? –

ответ

1

Самый простой, возможно, добавить в свой код несколько операторов print. При двоичном поиске должно быть относительно легко определить, когда VM и dart2js расходятся.

Пожалуйста, сообщите, в чем причина и/или ошибка в файле http://dartbug.com/, если вы считаете, что dart2js сделал это неправильно.

Решение (как сообщается OP): «dart.js должен появиться после строки сценария приложения».

+0

Я добавил заявление печати после main(). Он хорошо печатает на Dart VM, но dart2js не выводит это утверждение в консоль FireFox. Кажется, скомпилированный JS-код не отображается в моем браузере. Ничего не работает в приложении, кроме внешних импортированных JS-библиотек. Даже кнопки и поля ввода не работают. –

+0

Попробуйте получить самую простую страницу. Удалите весь код Дарта, кроме печати в основном. На сервере (или с помощью dev-tools) выберите файлы, которые загружаются. Если печать не выполняется, я бы предположил, что dart.js не заменяет теги сценария дротика метками js script. Я не тестировал его, но, возможно, потому, что теги скрипта находятся в заголовке, а не в теле. Вот что я буду смотреть дальше. –

+1

Спасибо Флориан. Я нашел проблему. dart.js должен появиться после моей строки сценария приложения. Я думаю, что DartEditor должен выдать предупреждение, если это важно для размещения линии dart.js. После того как я сделал это изменение, виртуальная машина начала отображать все динамически сгенерированные кнопки дважды. И JS-версия приложения не ведет себя так, как ожидалось. Выбрасывание исключений нулевого указателя при отсутствии виртуальной машины. Я расскажу об этих проблемах в другом вопросе stackoverflow. Для этого qustion изменение положения dart.js делает трюк. Еще раз спасибо за время и помощь. Пожалуйста, добавьте это решение 2 ур ответа. –

Смежные вопросы