【问题标题】:Turn off dart2js during pub build在 pub 构建期间关闭 dart2js
【发布时间】:2014-04-18 15:02:45
【问题描述】:

我正在为pub build 编写一个自定义转换器。我想在调试变压器时关闭 dart 文件到 js 的编译以节省时间。有可能吗?

目前,我的简化版pubspec.yaml

name: my_proj
dependencies:
    polymer: any
transformers:
    - my_proj

【问题讨论】:

    标签: dart dart-polymer dart-editor dart-pub dart2js


    【解决方案1】:

    https://code.google.com/p/dart/issues/detail?id=17484#c4的回答

    > 首先,在您的迭代循环中,您应该考虑使用“pub serve”而不是“pub build”。它只会在被请求时编译 dart2js 输出,因此您可以轻松地测试您的 Dart 输出,而无需等待无用的 JS。不幸的是,它还不会自动重新加载您的变压器,但即便如此,它仍然应该更快。

    > 如果你真的想使用“pub build”,你可以用“--mode debug”运行它来生成JS,然后添加“{$dart2js: {$exclude: web}}”作为transformer来有效禁用 dart2js。

    另见文档https://www.dartlang.org/tools/pub/assets-and-transformers.html#exclude-assets

    【讨论】:

      【解决方案2】:

      pub build 没有选项,只有pub serve --no-dart2js

      您可以临时修改文件

      dart/sdk/lib/_internal/pub/lib/src/barback/build_environment.dart 在您的 dart 安装目录中,并将 useDart2JS 设置为 'false'。

      另见https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/sdk/lib/_internal/pub/lib/src/barback/build_environment.dart#56

      我自己没有尝试过,但我认为这应该可行。

      或者排除pubspec.yaml中dart2js转换器的web目录

      transformers:
      - $dart2js:
          $exclude: web
      

      【讨论】:

      • 我在dart目录下没有找到build_environment.dart文件。。我用的是电脑上最新的DEV版本的dart。。希望以后这个选项可以用于pub build。 .
      • 已发布的 Dart SDK 似乎仅在快照中对此进行了编码(即使用于调用 pubpub 脚本引用了路径 dart-sdk/lib/_internal/pub/ 文件夹不存在。要使这项工作您可能需要从源代码构建 SDK。可能不值得这么麻烦。
      猜你喜欢
      • 2016-11-11
      • 2015-04-26
      • 2014-02-21
      • 1970-01-01
      • 2014-06-27
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 2012-10-03
      相关资源
      最近更新 更多