本章将指引你完成从 Dart 1.x web 应用到 Dart 2 的迁移。由于以下原因,这些改变是必要的:
-
工具改变:
- Chrome 代替 Dartium 和 content-shell.
- 一个新的编译系统代替
pub build
,pub serve
, pub transformers.
- Dart 2 语言和库改变。
工具
Dart 2 的 web 应用开发环境不同于 Dart1.x。以下是亮点:
Dart 1.x | Dart 2 |
---|---|
Dartium, content shell | Chrome 和 dartdevc |
pub build |
pub run build_runner build . 查看: build_runner build
|
pub serve |
pub run build_runner serve . 查看: build_runner serve
|
pub run angular_test |
pub run build_runner test -- -p chrome . 查看: Running tests
|
pub transformers | build package transformers. 查看: Transforming code |
代码
要迁移到 Dart 2,你需要编辑你的 web 应用的项目文件:
-
pubspec.yaml
, 看下面的详情。 - HTML 文件中的
<script src="foo.dart"...>
元素, 例如web/index.html
。 看下面的详情。 - Dart 代码,由于Dart 语言和库的改变。
对于迁移应用的完整例子,比较 angular-examples 应用的任何一个master
和5-dev
分支,如这些:
Pubspec
对你的pubspec.yaml
文件做出如下改变:
- 添加新的
dev_dependencies:
build_runner: ^0.8.2
-
build_test: ^0.10.1
,如果要运行测试 build_web_compilers: ^0.3.6
- 移除
dev_dependencies:
browser
dart_to_js_script_rewriter
- 升级
test
版本 0.12.30 或更高;它默认使用 chrome 做测试。 - 移除所有的
transformers:
angular
dart_to_js_script_rewriter
test/pub_serve
例如,这里 angular-examples/quickstart/pubspec.yaml 是应用这些改变后的差异。
HTML 中的 script 元素
使用<script>
元素最常见的示例文件是web/index.html
。你需要做出如下改变:
- 移除
<script defer src="packages/browser/dart.js"></script>
- 使用
<script defer src="foo.dart.js"></script>
代替<script defer src="foo.dart" type="application/dart"></script>
这里 angular-examples/quickstart/web/index.html 是应用了这些改变后的差异。
额外的资源
- Dart 2 更新:关于 Dart 2 中变化的信息,以及如何从 Dart 1.x 迁移你的代码。
- 更新日志: 列出制作本网站的文档和示例的变化。
网友评论