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

时间:2014-06-12 17:07:11

标签: dart angular-dart

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

dart应用程序将作为index.html在root上运行。 js应用程序将在一个单独的路径上运行,比如'/ jsApp'。

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

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

我是否需要main.dart.js以及main.dart.precompiled.js?对于一个简单的应用程序来说,它们似乎是非常大的文件。这是预料之中的吗?

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

3 个答案:

答案 0 :(得分:1)

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

您的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使用镜像,因此,如果不使用角度变换器,生成的js代码会变得非常大。

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

您必须以某种方式将从“pub build”获得的内容与现有的js应用程序合并。

答案 1 :(得分:1)

我正在使用混合了Dart控制器的AngularJS。您不必调整当前的项目结构来使用pub构建。只需使用dart2js编译各个dart文件,并在页面中包含“.js”文件。您不必添加本机dart脚本标记或在代码中包含dart引导程序。只需为生成的js文件(您需要的唯一文件)包含一个脚本标记,它就能满足您的期望。我打算很快写下这个简短的概述。

答案 2 :(得分:0)

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

您使用的是Dart版本?

如果您在调试模式下构建,源映射文件也会在构建目录中生成。

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

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