I've coded a webapp in Dart. On server side I'm using DartForce MVC framework and on client side I'm using AngularDart. If I build in DartEditor I received this error
[Info from Dart2JS]:
Compiling dartrest|web/main.dart...
[Dart2JS on dartrest|web/main.dart]:
1 warning(s) suppressed in package:route_hierarchical.
[Dart2JS on dartrest|web/main.dart]:
1 warning(s) suppressed in package:angular.
[Info from Dart2JS]:
Took 0:00:14.278144 to compile dartrest|web/main.dart.
[Info from Dart2JS]:
Compiling dartrest|bin/server.dart...
[Dart2JS]:
bin/server.dart:
****************************************************************
* WARNING: dart:mirrors support in dart2js is experimental,
* and not recommended.
* This implementation of mirrors is incomplete,
* and often greatly increases the size of the generated
* JavaScript code.
*
* Your app imports dart:mirrors via:
* server.dart => package:forcemvc => dart:mirrors
* server.dart => package:forcemvc => package:mustache4dart => dart:mirrors
* server.dart => package:forcemvc => package:forcemirrors => dart:mirrors
* server.dart => package:forcemvc => package:wired => dart:mirrors
* server.dart => package:forcemvc => package:wired => package:forcemirrors => dart:mirrors
* server.dart => package:mustache4dart => dart:mirrors
* server.dart => package:appengine => package:gcloud => package:http => dart:mirrors
* server.dart => package:appengine => package:gcloud => package:googleapis => package:http => dart:mirrors
* server.dart => package:appengine => package:gcloud => dart:mirrors
* server.dart => package:appengine => package:http => dart:mirrors
* server.dart => package:appengine => package:googleapis_auth => package:http => dart:mirrors
*
* Starting with Dart 1.9, you must use the
* --enable-experimental-mirrors command-line flag to opt-in.
* You can begin using this flag now if mirrors support is critical.
*
* To learn what to do next, please visit:
* http://dartlang.org/dart2js-reflection
****************************************************************
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/forcemvc/server/serving_files.dart:46:71:
Experimental language feature 'async/await' is not supported.
Future serveFile(HttpRequest request, String root, String fileName) async {
^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/forcemvc/server/web_application.dart:163:68:
Experimental language feature 'async/await' is not supported.
Future _send_template(HttpRequest req, Model model, String view) async {
^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/forcemvc/render/view_render.dart:36:45:
Experimental language feature 'async/await' is not supported.
Future<String> render(String view, model) async {
^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/forcemvc/render/view_render.dart:64:46:
Experimental language feature 'async/await' is not supported.
Future<String> _readFile(File file, model) async {
^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/gcloud/service_scope.dart:80:33:
Symbol literal '#_gcloud.service_scope' is currently unsupported by dart2js.
const Symbol _ServiceScopeKey = #_gcloud.service_scope;
^^^^^^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/appengine/api/users.dart:39:15:
Symbol literal '#_appengine.users' is currently unsupported by dart2js.
ss.register(#_appengine.users, service);
^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/appengine/api/logging.dart:61:15:
Symbol literal '#_appengine.logging' is currently unsupported by dart2js.
ss.register(#_appengine.logging, service);
^^^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/gcloud/http.dart:13:40:
Symbol literal '#_gcloud.http' is currently unsupported by dart2js.
const Symbol _authenticatedClientKey = #_gcloud.http;
^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/appengine/api/memcache.dart:19:15:
Symbol literal '#_appengine.memcache' is currently unsupported by dart2js.
ss.register(#_appengine.memcache, service);
^^^^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/appengine/api/modules.dart:77:15:
Symbol literal '#_appengine.modules' is currently unsupported by dart2js.
ss.register(#_appengine.modules, service);
^^^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/gcloud/storage.dart:67:28:
Symbol literal '#_gcloud.storage' is currently unsupported by dart2js.
const Symbol _storageKey = #_gcloud.storage;
^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/gcloud/datastore.dart:17:30:
Symbol literal '#_gcloud.datastore' is currently unsupported by dart2js.
const Symbol _datastoreKey = #_gcloud.datastore;
^^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/gcloud/db.dart:21:23:
Symbol literal '#_gcloud.db' is currently unsupported by dart2js.
const Symbol _dbKey = #_gcloud.db;
^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/appengine/appengine.dart:26:35:
Symbol literal '#_appengine.context' is currently unsupported by dart2js.
const Symbol _APPENGINE_CONTEXT = #_appengine.context;
^^^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/forcemvc/server/web_application.dart:92:55:
Experimental language feature 'async/await' is not supported.
Future _resolveStatic(HttpRequest req, String name) async {
^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/appengine/api/users.dart:48:42:
Symbol literal '#_appengine.users' is currently unsupported by dart2js.
UserService get userService => ss.lookup(#_appengine.users);
^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/appengine/api/memcache.dart:28:43:
Symbol literal '#_appengine.memcache' is currently unsupported by dart2js.
Memcache get memcacheService => ss.lookup(#_appengine.memcache);
^^^^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/appengine/api/modules.dart:86:48:
Symbol literal '#_appengine.modules' is currently unsupported by dart2js.
ModulesService get modulesService => ss.lookup(#_appengine.modules);
^^^^^^^^^^^^^^^^^^^
[Error from Dart2JS on dartrest|bin/server.dart]:
packages/appengine/api/logging.dart:70:41:
Symbol literal '#_appengine.logging' is currently unsupported by dart2js.
Logging get loggingService => ss.lookup(#_appengine.logging);
^^^^^^^^^^^^^^^^^^^
[Info from Dart2JS]:
Took 0:00:02.513900 to compile dartrest|bin/server.dart.
Build failed.
If I build same project into shell with
pub build
into my project folder and this produce an incomplete build: only web folder is generated.
This is my pubspec.yaml
name: dartrest
dependencies:
angular: 1.0.0
appengine: '>=0.2.4 <0.3.0'
browser: any
forcemvc:
git: 'https://github.com/ForceUniverse/dart-forcemvc'
http_server: '>=0.9.3 <0.10.0'
logging: '>=0.9.0 <0.10.0'
web_components: '>=0.9.0 <1.0.0'
dev_dependencies:
mock: '>=0.11.0+2 <0.12.0'
unittest: '>=0.11.0+5 <0.12.0'
transformers:
- angular:
dart_sdk: /usr/lib/dart
html_files:
- lib/component/custom.html
Any ideas?
Seems to be a issue with DartEditor to pass specific folders to the
pub buildcommand. Can you please create a bug report at http://dartbug.com/new.It is fine if only the
build/webfolder was created.The server code can be deployed as is. There is an experimental
dart2dartoption (see Run Dart WebApp on Apache Server) but for the way development forManaged VMsis currently set up, deploying thebindirectory without building is just fine (default bygcloud preview app run app.yaml).Update
Because transformers can be important for server side code as well it makes sense to run
pub build web binbut just the Dart2JS transformer doesn't make sense for bin.A workaround is to add this transformer configuration
to your
pubspec.yamlfile.As far as I know the
$dart2jstransformer should be the last in the list if you have others (likeangular,di,smoke, ...)