需要从Dart项目部署哪些文件?

需要从Dart项目部署哪些文件?,dart,angular-dart,Dart,Angular Dart,我有一个AngularJS项目,我正在考虑迁移到Dart。我不想在一个大爆炸中迁移整个项目,所以我正在寻找同时运行这两个应用程序的方法 dart应用程序将作为index.html在根目录上运行。js应用程序将在单独的路径上运行,例如“/jsApp” 当我构建一个测试项目时,/build目录似乎包含了很多不必要的文件。是否需要部署/build/web目录的完整内容 实际加载的是什么?html文件是否仍在运行时加载,或者是否已绑定到主文件中 我需要main.dart.js和main.dart.pre

我有一个AngularJS项目,我正在考虑迁移到Dart。我不想在一个大爆炸中迁移整个项目,所以我正在寻找同时运行这两个应用程序的方法

dart应用程序将作为index.html在根目录上运行。js应用程序将在单独的路径上运行,例如“/jsApp”

当我构建一个测试项目时,/build目录似乎包含了很多不必要的文件。是否需要部署/build/web目录的完整内容

实际加载的是什么?html文件是否仍在运行时加载,或者是否已绑定到主文件中

我需要main.dart.js和main.dart.precompiled.js吗?对于一个平凡的应用程序来说,它们似乎是非常大的文件。这是意料之中的事吗


我仍然不清楚所有这些东西是如何结合在一起的。

通常需要部署整个构建目录,并且通常没有不必要的文件。 在最近的Dart版本中不再生成
*.precompiled.js
文件(这是为了符合CSP)

你用的是哪种飞镖

如果在调试模式下生成,那么源映射文件也会在生成目录中生成

浏览器加载用户请求的HTML文件,然后加载此HTML和所有其他资源(img、css等)中
标记中的脚本文件引用


我不知道带有外部HTML模板文件的Angular组件的生成输出是否内联在
index.HTML
中,或者它们是否按原样复制。

如果要使生成的文件尽可能小,您应该:

  • 确保您的pubspec.yaml包含角度转换器,如下所述:
您的pubspec.yaml应该如下所示:

name: angular_dart_demo
version: 0.0.1
dependencies:
  angular: 0.12.0
  [...]
transformers:
-  angular
  html_files:
    - web/my_html_template.html
    - web/another_html_template.html
  • 使用pub Build从命令行生成
这样,您将获得800KB的js,而不是5MB的js;) 这是因为Angular Dart使用镜像,因此,如果不使用Angular transformer,生成的js代码可能会变得非常大

我认为html模板会被复制到构建目录,并在运行时被请求


您必须以某种方式将从“发布构建”中获得的内容与现有的js应用程序合并

我使用的是混合了省道控制器的AngularJS。您不必调整当前的项目结构来使用pub构建。只需使用dart2js编译各个dart文件,并在页面中包含“.js”文件。您不必添加本机dart脚本标记或在代码中包含dart引导。只需为生成的js文件(您需要的唯一文件)包含一个脚本标记,它就会完成您所期望的。我计划很快写一篇简短的概述。

我(现在)正在使用Dart 1.4.2_r36647,这是我今天从下载站点获得的。它仍在生成“预编译”文件。“main.dart.js”文件的容量仍然超过1兆字节,只比“Hello World”多一点。这正常吗?我想我看到Misko在某个地方说,他们已经将生成的文件大小减小到200KB。我想,当您运行
pub build
form DartEditor时,它是在
debug模式下运行的,这会生成更大的输出(没有缩小,…)。您能否尝试从控制台运行
pub build
?如果它仍然不能产生预期的输出,请尝试
pub build--mode=release
shadow\u dom已被弃用(在构建到JS时会导致许多错误),您应该使用web\u组件来代替。您是对的,Günter。我将把它从我的答案中删除。感谢您的澄清,我想这不适用于静态喷油器,它提供了巨大的性能优势。静态注入器需要运行di转换器(通常由发布构建调用,但也可以手动运行)