addDependency static method

Future<void> addDependency({
  1. required String package,
  2. String? version,
  3. bool dev = false,
  4. bool useFlutter = true,
})

Implementation

static Future<void> addDependency({
  required String package,
  String? version,
  bool dev = false,
  bool useFlutter = true,
}) async {
  final tool = useFlutter ? 'flutter' : 'dart';
  final args = ['pub', 'add', if (dev) '-d', if (version != null) '$package:$version' else package];

  final result = await Process.run(tool, args);
  if (result.exitCode != 0) {
    stderr.writeln('pub add failed, falling back to YAML edit: ${result.stderr}');
    _editPubspecYaml(package: package, version: version, dev: dev);
    // Resolve dependencies
    await Process.run(tool, ['pub', 'get']);
  }
}