首页 > 解决方案 > 使用 dartdoc 生成文档时“生成失败”

问题描述

我正在尝试为我正在处理的 Flutter 项目生成文档。我dartdoc在我的项目的文件夹中使用。

它是dartdoc与 Chocolatey 一起安装的 Dart SDK 的(所以它不是 Flutter 的),我保存在我的系统 PATH 中。 dart --versionDart VM version: 2.0.0-dev.53.0 (Thu May 3 12:35:47 2018 +0200) on "windows_x64".

我使用 Flutter 的 Dart's 得到完全相同的错误dartdoc,因此path_to_flutter\flutter\bin\cache\dart-sdk\bin\dartdoc.bat'在我的项目目录中运行。

flutter --version的是:

Flutter 0.3.2 • channel beta • https://github.com/flutter/flutter.git
Framework • revision 44b7e7d3f4 (3 weeks ago) • 2018-04-20 01:02:44 -0700
Engine • revision 09d05a3891
Tools • Dart 2.0.0-dev.48.0.flutter-fe606f890b

dartdoc在这两种情况下,在解析所有项目文件之后的输出是:

Generating documentation for 'pindery' into C:\Users\Edoardo Debenedetti\Documents\Tongji\Software Engineering\Progetto\pindery\doc\api\
parsing lib\catalogue\catalogue.dart...
parsing lib\catalogue\catalogue_element.dart...

[...]

Initialized dartdoc with 775 libraries in 61.7 seconds
documenting pindery

Generation failed: Bad state: Could not find "packageGraph.version" in given context
package:mustache4dart/mustache_context.dart 88                                               _MustacheContext._getInThisOrParent
package:mustache4dart/mustache_context.dart 78                                               _MustacheContext.field
package:mustache4dart/src/tokens.dart 169                                                    _ExpressionToken.apply
package:mustache4dart/src/tokens.dart 247                                                    _EscapeHtmlToken.apply
package:mustache4dart/src/tokens.dart 40                                                     Token.call
package:mustache4dart/src/tmpl.dart 101                                                      _Template._write
package:mustache4dart/src/tmpl.dart 76                                                       _Template.call
package:mustache4dart/src/mustache.dart 11                                                   render
package:mustache4dart/src/tokens.dart 211                                                    _PartialToken.apply
package:mustache4dart/src/tokens.dart 40                                                     Token.call
package:mustache4dart/src/tmpl.dart 101                                                      _Template._write
package:mustache4dart/src/tmpl.dart 76                                                       _Template.call
package:dartdoc/src/html/html_generator_instance.dart 287                                    HtmlGeneratorInstance._build
package:dartdoc/src/html/html_generator_instance.dart 171                                    HtmlGeneratorInstance.generatePackage
package:dartdoc/src/html/html_generator_instance.dart 90                                     HtmlGeneratorInstance._generateDocs
package:dartdoc/src/html/html_generator_instance.dart 36                                     HtmlGeneratorInstance.generate
===== asynchronous gap ===========================
dart:async                                                                                   _Completer.completeError
package:dartdoc/src/html/html_generator_instance.dart                                        HtmlGeneratorInstance.generate
===== asynchronous gap ===========================
dart:async                                                                                   new Future.microtask
package:dartdoc/src/html/html_generator_instance.dart 34                                     HtmlGeneratorInstance.generate
package:dartdoc/src/html/html_generator.dart 107                                             HtmlGenerator.generate
===== asynchronous gap ===========================
dart:async                                                                                   new Future.microtask
package:dartdoc/src/html/html_generator.dart 73                                              HtmlGenerator.generate
package:dartdoc/dartdoc.dart 144                                                             Dartdoc.generateDocs
===== asynchronous gap ===========================
dart:async                                                                                   _asyncThenWrapperHelper
package:dartdoc/dartdoc.dart 129                                                             Dartdoc.generateDocs
E:\b\build\slave\dart-sdk-windows-dev\build\sdk\third_party\pkg\dartdoc\bin\dartdoc.dart 77  main.<fn>.<fn>
===== asynchronous gap ===========================
dart:async                                                                                   new Future.microtask
E:\b\build\slave\dart-sdk-windows-dev\build\sdk\third_party\pkg\dartdoc\bin\dartdoc.dart 76  main.<fn>.<fn>
dart:async                                                                                   runZoned
E:\b\build\slave\dart-sdk-windows-dev\build\sdk\third_party\pkg\dartdoc\bin\dartdoc.dart 76  main.<fn>
===== asynchronous gap ===========================
dart:async                                                                                   new Future.microtask
E:\b\build\slave\dart-sdk-windows-dev\build\sdk\third_party\pkg\dartdoc\bin\dartdoc.dart 75  main.<fn>
package:stack_trace                                                                          Chain.capture
E:\b\build\slave\dart-sdk-windows-dev\build\sdk\third_party\pkg\dartdoc\bin\dartdoc.dart 75  main

是我项目的问题吗?我该如何解决?

非常感谢。

标签: dartdocumentationflutter

解决方案


Actually it is a bug, whose workaround is putting a version in the project's pubspec.yaml file. E.g.

name: pindery
description: An amazing party app
version: 0.0.1-alpha0

[...]

In this way the documentation is succesfully generated. You can see the issue on dartdoc's GitHub issues tracking page.


推荐阅读