removePackagesFromProject(packages) {
    let task = this.taskFor('npm-uninstall');
    let installText = packages.length > 1 ? 'uninstall packages' : 'uninstall package';
    let packageNames = [];

    let projectDependencies = this.project.dependencies();

    for (let i = 0; i < packages.length; i++) {
      let packageName = packages[i].name;
      if (packageName in projectDependencies) {
        packageNames.push(packageName);
      }
    }

    if (packageNames.length === 0) {
      this._writeStatusToUI(chalk.yellow, 'remove', 'Skipping uninstall because no matching package is installed.');
      return Promise.resolve();
    }

    this._writeStatusToUI(chalk.green, installText, packageNames.join(', '));

    return task.run({
      'save-dev': true,
      verbose: false,
      packages: packageNames,
    });
  }
Used to remove multiple packages from the project's `package.json`.

    Generally, this would be done from the `afterInstall` hook, to
    ensure that any package conflicts can be resolved before the
    addon is used.

    Expects each array item to be an object with a `name` property.

    @method removePackagesFromProject
    @param {Array} packages
    @return {Promise}