2013-11-15 7 views
4

Я пытаюсь сгенерировать документацию о дротическом коде. Я заметил, что я не могу создать документацию через DartDoc, потому что внутри моей библиотеки мне когда-то нужно импортировать некоторые внешние библиотеки.Генерация DartDoc не работает при импорте пакета внутри библиотеки

Ниже приведен небольшой пример, который показывает мою фактическую проблему.

listController.dart

part of controllers; 

@NgController (
    selector: '[list-control]', 
    publishAs: 'listCtrl' 
) 
class ListController { 

} 

controllers.dart

library controllers; 

import 'package:angular/angular.dart'; 

part 'listController.dart'; 

Конечный результат на консоли

Running dartdoc... 
Using snapshot /Users/ecomtemarois/Downloads/dart/dart-sdk/bin/snapshots/utils_wrapper.dart.snapshot 
Analyzing libraries... 
../../../Documents/ecash.dart/ecash/controllers/controllers.dart:3:8: Error: Can't read 'package:angular/angular.dart' (Error reading 'packages/angular/angular.dart' (OS Error: No such file or directory, errno = 2)). 
import 'package:angular/angular.dart'; 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
../../../Documents/ecash.dart/ecash/controllers/listController.dart:3:2: Error: Cannot resolve 'NgController'. 
@NgController (
^^^^^^^^^^^^ 
../../../Documents/ecash.dart/ecash/controllers/listController.dart:3:1: Error: Not a compile-time constant. 
@NgController (
^^^^^^^^^^^^^^^^ 
Error: generation failed: Bad state: Failed to create mirror system. 
StackTrace: #0  analyze.<anonymous closure> (file:///Volumes/data/b/build/slave/dart-editor-mac-trunk/build/dart/sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirror.dart:232) 
#1  _Future._propagateToListeners.<anonymous closure> (dart:async/future_impl.dart:457) 
#2  _rootRun (dart:async/zone.dart:720) 
#3  _RootZone.run (dart:async/zone.dart:862) 
#4  _Future._propagateToListeners (dart:async/future_impl.dart:449) 
#5  _Future._complete (dart:async/future_impl.dart:302) 
#6  Future.forEach.nextElement (dart:async/future.dart:269) 
#7  _Future._propagateToListeners.<anonymous closure> (dart:async/future_impl.dart:457) 
#8  _rootRun (dart:async/zone.dart:720) 
#9  _RootZone.run (dart:async/zone.dart:862) 
#10  _Future._propagateToListeners (dart:async/future_impl.dart:449) 
#11  _Future._complete (dart:async/future_impl.dart:302) 
#12  Future.forEach.nextElement (dart:async/future.dart:269) 
#13  _Future._propagateToListeners.<anonymous closure> (dart:async/future_impl.dart:457) 
#14  _rootRun (dart:async/zone.dart:720) 
#15  _RootZone.run (dart:async/zone.dart:862) 
#16  _Future._propagateToListeners (dart:async/future_impl.dart:449) 
#17  _Future._complete (dart:async/future_impl.dart:302) 
#18  _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:358) 
#19  _asyncRunCallback (dart:async/schedule_microtask.dart:18) 
#20  _createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:11) 
#21  _Timer._createTimerHandler._handleTimeout (timer_impl.dart:151) 
#22  _Timer._createTimerHandler.<anonymous closure> (timer_impl.dart:166) 
#23  _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:93) 

Я хотел бы знать, как иметь доступ к этим пакетам и все еще иметь возможность генерировать документацию.

благодаря

+0

Похож на ошибку, как насчет заполнения ошибки на http://dartbug.com? – Fox32

+0

@ Fox32: Это не только похоже на ошибку. Это настоящая ошибка. – mezoni

ответ

1

Похоже, что вы не имеете каталог packages следующий файл дротика. Если вы используете Pub, этот каталог должен быть создан с помощью команды pub get. Если вы этого не сделаете, вы можете указать путь к вашим пакетам с опцией --package-root=<path>.

NB: глядя на ваш путь (../../../Documents/ecash.dart/ecash/controllers/listController.dart), вы, кажется, не следуете за Package layout conventions. Я бы рекомендовал следовать ему.