[英]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
默认)。
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
, ...) 据我所知,如果您还有其他人(例如
angular
, di
, smoke
,...), $dart2js
变压器应该是列表中的最后一个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.