简体   繁体   English

DartEditor Pub Build谷歌应用引擎

[英]DartEditor Pub Build google app engine

I've coded a webapp in Dart. 我已经在Dart中编写了一个webapp。 On server side I'm using DartForce MVC framework and on client side I'm using AngularDart. 在服务器端,我使用DartForce MVC框架,在客户端端,我使用AngularDart。 If I build in DartEditor I received this error 如果我在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 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. 放入我的项目文件夹中,这将生成不完整的版本:仅生成Web文件夹。

This is my pubspec.yaml 这是我的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 build command. DartEditor似乎无法将特定的文件夹传递给pub build命令。 Can you please create a bug report at http://dartbug.com/new . 您能否在http://dartbug.com/new上创建错误报告。

It is fine if only the build/web folder was created. 如果只创建了build/web文件夹,那很好。
The server code can be deployed as is. 服务器代码可以按原样部署。 There is an experimental dart2dart option (see Run Dart WebApp on Apache Server ) but for the way development for Managed VMs is currently set up, deploying the bin directory without building is just fine (default by gcloud preview app run app.yaml ). 有一个试验性的dart2dart选项(请参阅在Apache Server上运行Dart WebApp ),但是对于当前设置Managed VMs开发方式而言,无需构建就可以部署bin目录( gcloud 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 bin but just the Dart2JS transformer doesn't make sense for bin. 因为转换器对于服务器端代码也很重要,所以运行pub build web bin有意义,但仅Dart2JS转换器对bin没有意义。

A workaround is to add this transformer configuration 解决方法是添加此变压器配置

transformers:
- $dart2js:
    $exclude: bin/**.dart

to your pubspec.yaml file. 到您的pubspec.yaml文件。

As far as I know the $dart2js transformer should be the last in the list if you have others (like angular , di , smoke , ...) 据我所知,如果您还有其他人(例如angulardismoke ,...), $dart2js变压器应该是列表中的最后一个

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从 Google Pub/Sub 调用 Google App Engine 端点 - Calling Google App Engine endpoint from Google Pub/Sub Google Pub/Sub 推送消息不适用于启用 IAP 的应用引擎 - Google Pub/Sub push message not working for IAP enabled app engine 是否可以从App Engine标准环境访问Google Pub / Sub? - Access Google Pub/Sub from App Engine standard environment? Google Pub/Sub 将订阅推送到受 IAP 保护的 App Engine - Google Pub/Sub push subscription into IAP-protected App Engine Google App Engine上的发布/订阅以大约100%CPU运行 - Pub/Sub on Google App Engine runs at ~100% CPU Google App Engine的构建工具 - Build tools for Google App Engine Google App Engine上的Google Cloud Pub / Sub过早达到QPS限制 - Google Cloud Pub/Sub on Google App Engine hits QPS limit too soon Google Cloud Build 和 App Engine 环境变量 - Google Cloud Build and App Engine enviroment variables Google发布/订阅功能是否具有一些在上传后立即通知Google App Engine端点的功能? - Does Google Pub/Sub feature have some of capability to notify a Google App Engine endpoint directly after an upload? Google App Engine-指定自定义构建依赖项 - Google App Engine - specify custom build dependencies
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM