web-dev-qa-db-ja.com

すべてのbowerパッケージをどのようにアンインストールしますか?

サイト全体を再構築し、bower.json内のすべてのパッケージの新しいバージョンを強制的にbowerに再インストールすると便利な場合があります。

ただし、それを行う方法はないようです。

試み#1:

$ bower uninstall
bower not-installed 0

いいえ、クリーンな「bower install」ではbower.jsonが使用されていますが、パッケージごとにしか機能しません。

試行#2:

$ bower install -f -l 0
$

いいえ、「-f」にもかかわらず、依存関係が満たされた場合、これはまったく何もしません。

試み#3:

$ rm -r bower_components
$

!ああ勝利! ...待って、これは何ですか?

rm: bower_components: No such file or directory

ああ、このプロジェクトには、ものをインストールするディレクトリを設定する.bowrcがあります。

私の現在のひどい解決策:

次のカスタムスクリプトを実行します。

- Parse .bowerrc if one exists
- Load the directory if one is specified in the json block
- If the directory currently exists...
- ...recursively delete the directory.

動作すると思いますが、繰り返しセットアップしなければならないのはかなり面倒です。

何か不足していますか?

ローカルにインストールされたモジュールを削除する簡単なbowerコマンドはありませんか?

Bowerのアンインストールが期待される、本当に基本的な機能のようです。

(これは実際には非常にjavascriptの質問ではありませんが、簡単なノードスクリプトでこれを実現するためにbowerモジュールにフックするものを喜んで受け入れます)

状況

編集:このようなタスクの「動機付け」が必要な場合、これは次のとおりです。プロジェクトをビルドしてテストを実行するjenkinsサーバーがあります。ただし、明確な理由もなく定期的に失敗します。調査中、ほぼalwaysです。jenkinsは、テストをビルドして実行する前に最新バージョンに更新するために、git-pullだけでリポジトリの以前のコピーを使用しているためです。その結果、以前のbower_componentsディレクトリーが存在し、さまざまなコンポーネントのキャッシュされたコピーでいっぱいになりました。

#@ $ @#$ dであり、強制インストールとしてbowerを再度実行する必要があるもののいくつかの例を次に示します。

1)一部のばか(> _> fitvids)は、プロジェクトの以前のタグ付きリリースを削除します。

2)いくつかのプロジェクトがお辞儀から脱落した/ githubページを移動した

3)一部のプロジェクト(> _> jquery)では、非メジャーバージョンリビジョンでのファイルのレイアウト方法が変更されています。

この問題の「正しい」解決策は次のとおりです。ジェンキンスを修正して、ビルドごとに新しい一時ディレクトリを作成します。 ...しかし、それは私のコントロールではありません。

そのため、ビルドのステップとして、bowerコンポーネントを削除して、すべてを強制的に再インストールする方法を自動化する必要があります。単調なタスク(ビルドの一部)またはjenkinsビルドステップとして。ただし、上記の(3)から思い出してください。プロジェクトでは.bowerrcを使用しているため、単純にフォルダーを削除するほど簡単ではありません。

この作業を行うためのビルド前の手順として、既存のすべてのbowerコンポーネントをアンインストールできたら素晴らしいと思います。

だから...質問に戻って:これは、礼拝堂で行うことができますか?

68
Doug

更新された回答

すべてのパッケージを更新しようとしている場合は、

$ bower update

元の回答

Bower.jsonファイルに移動し、devDependenciesからアンインストールするすべてのコンポーネントまたはライブラリーを削除します。

削除したいものを削除したら、実行します-

$ bower Prune
  1. 皮切りに -

    "devDependencies": {
        "angular": "~1.2.15",
        "angular-ui-router": "~0.2.10",
        "moment": "~2.5.1"
    }
    
  2. ファイルからangular参照を削除-

    "devDependencies": {
        "moment": "~2.5.1"
    }
    
  3. execute

    $ bower Prune
    
  4. angular依存関係がアンインストールされるのを確認してください

148
VtoCorleone

どう?

  1. bower.jsonを編集します
  2. 'rm -Rf bower_components/*'
  3. バウワーインストール

0.2.3からpolymer 0.2.4にアップグレードしようとしていました。依存関係のセットをアンインストールする簡単な方法を見つけることができないようです。そのため、bower_componentsの下にあるポリマー* dirを手動で削除しました。しかし、何らかの理由でbowerは、bower.jsonを変更した0.2.3インストールイベントがあったことを思い出し続けました。 「rm -Rf bower_component/*」がトリックを行うようです。

10
user3206144

実際、私は少しトリッキーなことをしますが、それは私にとってはうまくいきます:

  1. for package in $(ls your_bower_components_folder); do bower uninstall "$package"; done;
  2. bower install
6
Jumar Polanco

パッケージのアンインストール

パッケージを削除するには、アンインストールコマンドに続けて、削除するパッケージの名前を使用します。

バウアーのアンインストール

パッケージ名をリストすることにより、複数のパッケージを一度に削除できます。

bowerアンインストールjquery modernizr sass-bootstrap

5
Nuno Sarmento

私はこれを行うためにnombomを使用しています(ボーナスとして、npmパッケージを最初から再インストールします):

https://www.npmjs.com/package/nombom

0
user2926055

使用するビルドツールがわかりませんが、Gruntに grunt-bowercopy が含まれている場合は、cleanオプションを使用できます。必要なファイルをコピーした後、bower_componentsフォルダー(または使用するように構成したもの)を削除します。

理想的には、各ビルドですべての依存関係を再ダウンロードする必要がなく、フレッシュインストールを実行するだけで新しいバージョンが見つかるものを好むでしょう。

私もこれに対するより良い解決策を探しているので、もし見つかったら更新します。

0
The DIMM Reaper

これは、Windows cmdプロンプトを介して私のために働いてしまったものです:

forfiles /p .\bower_components /c "cmd /c cd .. && bower uninstall @fname"
0
GaTechThomas

Jumar Polanco's answer をPowershellで使用するように調整すると、次の方法でbowerコンポーネントをプログラムでアンインストールできます。

Powershellインターフェースで、bower.jsonおよびbower_componentsフォルダーがある場所に移動します。通常はルートアプリフォルダーです。

その後、次を実行できます。

foreach($package in ls bower_components){bower uninstall $package}

パッケージの依存関係に応じて、プロセスを続行するために追加の入力(Y/n)を必要とするプロンプト(依存関係の競合など)が発生する可能性があるため、プロセスに特に注意する必要があります。

0
j4v1