Google app engine DartEditor发布构建谷歌应用程序引擎
我在Dart中编写了一个网络应用程序。在服务器端,我使用DartForce MVC框架,在客户端,我使用AngularDart。如果我在DartEditor中编译,我会收到此错误Google app engine DartEditor发布构建谷歌应用程序引擎,google-app-engine,dart,angular-dart,dart-editor,dart-pub,Google App Engine,Dart,Angular Dart,Dart Editor,Dart Pub,我在Dart中编写了一个网络应用程序。在服务器端,我使用DartForce MVC框架,在客户端,我使用AngularDart。如果我在DartEditor中编译,我会收到此错误 [Info from Dart2JS]: Compiling dartrest|web/main.dart... [Dart2JS on dartrest|web/main.dart]: 1 warning(s) suppressed in package:route_hierarchical. [Dart2JS on
[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.
这将生成一个不完整的生成:只生成web文件夹
这是我的出版物
名称:dartrest
依赖项:
角度:1.0.0
appengine:'>=0.2.4=0.9.3=0.9.0=0.9.0=0.11.0+2=0.11.0+5似乎是DartEditor将特定文件夹传递给pub build
命令的问题。你能在创建一个bug报告吗
如果只创建了build/web
文件夹就可以了。
服务器代码可以按原样部署。有一个实验性的dart2dart
选项(请参阅),但是对于当前设置的托管虚拟机的开发方式,在不构建的情况下部署bin
目录是很好的(默认为gcloud preview app run app.yaml
)
使现代化
因为转换器对于服务器端代码也很重要,所以运行pub-build-web-bin
是有意义的,但是只有Dart2JS转换器对于bin没有意义
解决方法是添加此转换器配置
transformers:
- $dart2js:
$exclude: bin/**.dart
到您的pubspec.yaml
文件
据我所知,$dart2js
变压器应该是列表中的最后一个,如果您还有其他变压器(如angular
,di
,smoke
,…)请将您的pubspec.yaml
添加到您的问题中。好的。我已经编辑了我的问题我更新了我的答案。在DartEditor中有一个推荐的Run>Pub Build(generate JS)
,如果我运行这个,我就遇到了上面的问题。在shell中,我在我的项目文件夹中使用了这个命令pub build
,所有工作正常,但新的构建文件夹似乎不完整。我在客户端使用AngularDart。这是一个例子:如果我在这个项目上运行Pub Build into Dart Editor,就会创建一个包含所有元素的新构建文件夹。问题在于DartEditor调用Pub Build
,使用类似Pub Build web bin
的东西,而不仅仅是Pub Build
transformers:
- $dart2js:
$exclude: bin/**.dart