Невозможно запустить Dart2 с Angular для Интернета вместе с Flutter для мобильного проекта - планируйте поделиться кодом

Я добился хороших успехов с Flutter в мобильных приложениях. В настоящее время используется:

[✓] Flutter (мастер канала, v0.3.1-pre.13, в Mac OS X 10.13.4 17E199, локаль en-US)

• Flutter version 0.3.1-pre.13 at /Users/golftocs/PhpstormProjects/flutter

• Framework revision 85be28d36b (32 hours ago), 2018-04-16 14:02:07 -0700

• Engine revision 76cb311d9c

• Dart version 2.0.0-dev.47.0.flutter-f76dad0adc

[✓] Android toolchain - разработка для устройств Android (Android SDK 27.0.1)

• Android SDK at /Users/golftocs/Library/Android/sdk

• Android NDK location not configured (optional; useful for native profiling support)

• Platform android-27, build-tools 27.0.1

• ANDROID_HOME = /Users/golftocs/Library/Android/sdk

• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java

• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

• All Android licenses accepted.

[✓] Набор инструментов iOS - разработка для устройств iOS (Xcode 9.3)

• Xcode at /Applications/Xcode.app/Contents/Developer

• Xcode 9.3, Build version 9E145

• ios-deploy 1.9.2

• CocoaPods version 1.5.0

[✓] Android Studio (версия 3.1)

• Android Studio at /Applications/Android Studio.app/Contents

• Flutter plugin version 23.1.2

• Dart plugin version 173.4700

• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[!] Подключенные устройства

! No devices available

Теперь я хочу начать проект, который использует эту настройку Flutter для мобильных устройств и делится кодом с веб-приложением Dart2 / Angular. Я не могу заставить веб-приложение успешно работать. Я клонировал https://github.com/angular-examples/toh-5 и на основе запуска pub get возвращается следующее:

Overriding the upper bound Dart SDK constraint to <=2.0.0- 
edge.0d5cf900b021bf5c9fa593ffa12b15bcd1cc5fe0 for the following packages:



archive, args, barback, bazel_worker, boolean_selector, build_barback, 
build_config, build_modules, charcode, cli_util, code_transformers, 
convert, crypto, csslib, dart_style, fixnum, front_end, glob, graphs, 
html, http, http_multi_server, http_parser, intl, io, isolate, js, 
json_annotation, kernel, logging, matcher, meta, multi_server_socket, 
node_preamble, package_config, package_resolver, path, plugin, pool, 
protobuf, pub_semver, quiver, quiver_hashcode, shelf, 
shelf_packages_handler, shelf_static, shelf_web_socket, 
source_map_stack_trace, source_maps, source_span, stack_trace, 
stream_channel, string_scanner, term_glyph, test, tuple, typed_data, yaml

Затем, когда я запускаю команду pub run build_runner serve со своего терминала, я получаю:

[INFO] Generating build script completed, took 446ms

[INFO] Setting up file watchers completed, took 25ms

[INFO] Waiting for all file watchers to be ready completed, took 199ms

[INFO] Building new asset graph completed, took 921ms

[INFO] Checking for unexpected pre-existing outputs. completed, took 2ms

[SEVERE] build_web_compilers|ddc on package:angular_router/src/url.module:


ProcessException: No such file or directory

  Command: /Users/golftocs/PhpstormProjects/flutter/bin/cache/dart-sdk/bin/dartdevc --persistent_worker

[WARNING] build_web_compilers|entrypoint on web/main.dart:

Unable to read angular_router|lib/src/url.ddc.js, check your console or         the `.dart_tool/build/generated/angular_router/lib/src/url.ddc.js.errors` log file.

[SEVERE] build_web_compilers|ddc on     package:angular_router/src/location/platform_location.module:


ProcessException: No such file or directory

Command: /Users/golftocs/PhpstormProjects/flutter/bin/cache/dart-sdk/bin/dartdevc --persistent_worker

[WARNING] build_web_compilers|entrypoint on web/main.dart:

Unable to read angular_router|lib/src/location/platform_location.ddc.js, check your console or the `.dart_tool/build/generated/angular_router/lib/src/location/platform_location.ddc.js.errors` log file.

...

Кроме того, я использую WebStorm, на самом деле PHPStorm, и ссылки действий Pub на «Получить зависимости, обновить ...» не работают. Я могу выполнить только с терминала.

Я хочу: 1) обмениваться кодом между мобильными устройствами и веб-сайтами аналогично https://github.com/apptreesoftware/letsvote/blob/master/README.md 2) запустить последнюю версию Dart2 с Angular5.0.0-alpha и текущим основным каналом Flutter 3) IDE WebStorm без проблем работает с любым из объединенного проекта

Спасибо.


person Larry King    schedule 18.04.2018    source источник


Ответы (1)


shared_code
  |- flutter_project
  |- angular_project

где и flutter_project, и angular_project имеют shared-code как зависимость в pubspec.yaml

dependencies:
  shared_code:
    path: ../shared_code

предполагая структуру каталогов, такую ​​как

my_project/shared_code
my_project/flutter_project
my_project/angular_project

Код в shared_code не должен никоим образом зависеть от dart:io или flutter:ui, иначе он не будет работать ни с flutter_project, ни с angular_project

Если вы хотите открыть все 3 одновременно в IntelliJ в одном окне, добавление их всех в виде модуля в один проект сработало для меня. Когда я работаю над проектом Angular, мне нужно переключить Dart SDK в плагине Dart на Dart SDK, когда я работаю над проектом Flutter на Flutter Dart SDK, в противном случае запуск приложения и тестов не будет работать.

Вы также можете открывать каждый проект в собственном окне IntelliJ, которое сохраняет настройки для каждого окна индивидуально и не требует переключения в зависимости от того, с каким кодом вы в настоящее время работаете.

person Günter Zöchbauer    schedule 18.04.2018
comment
Большое тебе спасибо. Я пытался запустить Dart для Angular с SDK Flutter Dart. Скачивание Dart SDK отдельно, указав здесь Dart SDK Path и перезапустив мою IDE, работает !! Мой план для общего кода будет чистым Dart и включать интерфейс сервера и максимально возможную бизнес-логику. Я также ценю ваше руководство по архитектуре проекта. Ваше здоровье! - person Larry King; 19.04.2018
comment
Рад слышать. Flutter SDK настроен и не содержит dart:html, поэтому вам также нужен Dart SDK. Рад слышать, что у тебя получилось. - person Günter Zöchbauer; 19.04.2018