Pergunta

I'm trying to generate the documentation of dart code. I've noticed that I cannot generate any documentation through DartDoc because inside my library I sometime need to import some external libraries.

Below I have a small example that shows my actual problem.

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';

The end result on the console

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)

I would like to know how to be able to have access on those package and still be able to generate the documentation.

thanks

Foi útil?

Solução

It looks like you don't have a packages directory next your dart file. If you're using Pub this directory should be created with a pub get command. If you don't, you can provide the path of your packages with --package-root=<path> option.

NB: looking at your path (../../../Documents/ecash.dart/ecash/controllers/listController.dart) you don't seem to follow the Package layout conventions. I would recommand to follow it.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top