Проверьте код Dart и dart2js на одной странице

Я пытаюсь везти на Дарт. У меня есть приложение, которое загружает файл Dart и сгенерированный Javascript:

<script type="application/dart" src="/bones/build/web/quiz/quiz1.dart">
</script>
<script src="/bones/build/web/quiz/quiz1.dart.js">
</script>

Когда я открываю эту страницу в Dartium, запускаются и Javascript, и код Dart (мне нужен только один).
Как мне запустить только файл Dart, а не Javascript при открытии в Dartium, и запустить Javascript при открытии в Firefox или Chromium?

Должен ли я создать две страницы, одну для Dart и одну для Javascript? Это означает, что мне придется редактировать два файла, когда я хочу что-то изменить. Мне нехорошо.

С уважением, Хендрик Ян

---- РЕДАКТИРОВАТЬ ----
Теперь я понимаю, что может быть важно, чтобы это приложение было написано на PHP с использованием фреймворка Laravel.

2 ответа

Решение

Я нашел следующее решение, которое работает для меня. Вместо ссылки на сгенерированный файл Javascript (как я сделал в своем вопросе), я ссылаюсь на dart.js который загрузит сгенерированный Javascript в случае, если Dart не поддерживается в браузере, например так:

<script type="application/dart" src="/bones/build/web/quiz/quiz1.dart">
</script>
<script src="/bones/build/web/packages/browser/dart.js">
</script>

Это позволяет мне увидеть результат моей работы в Dartium, а также в Firefox и Chromium.

Вам не нужно ничего делать, пусть pub build/pub serve обработать, как теги сценария включены на страницу входа.

Проблема в том, что вы не можете создать развертываемый код Dart. dart2dart является экспериментальным и еще не поддерживается (см. Запуск Dart WebApp на Apache Server для получения дополнительной информации о dart2dart). Если вы используете pub serve Браузер с поддержкой Dart запускает код Dart, а браузер, который не поддерживает Dart, запускает код, созданный для JavaScript.

Dartium также только для разработки, и поэтому нет браузера, который обрабатывает код Dart. Насколько я знаю, команда Dart пытается подготовить dart2dart, когда Chrome поддерживает Dart.

Но для разработки использую pub serve это просто прекрасно, и вам не нужно делать ничего особенного.

Другие вопросы по тегам