in lib/src/package_config_io.dart [146:166]
Future<void> writePackageConfigJsonFile(
PackageConfig config, Directory targetDirectory) async {
// Write .dart_tool/package_config.json first.
var dartToolDir = Directory(pathJoin(targetDirectory.path, dartToolDirName));
await dartToolDir.create(recursive: true);
var file = File(pathJoin(dartToolDir.path, packageConfigFileName));
var baseUri = file.uri;
var sink = file.openWrite(encoding: utf8);
writePackageConfigJsonUtf8(config, baseUri, sink);
var doneJson = sink.close();
// Write .packages too.
file = File(pathJoin(targetDirectory.path, packagesFileName));
baseUri = file.uri;
sink = file.openWrite(encoding: utf8);
writeDotPackages(config, baseUri, sink);
var donePackages = sink.close();
await Future.wait([doneJson, donePackages]);
}