composerを使用してLaravelからパッケージを削除する方法


402

Laravel 4からパッケージを削除する正しい方法は何ですか?長い間私は試しました:

  1. composer.json(「require」セクションの)から宣言を削除する
  2. クラスエイリアスを削除する app.php
  3. 私のコードからパッケージへの参照を削除します:-)
  4. 走る composer update
  5. 走る composer dump-autoload

動かない!何か不足していますか?

一部のパッケージは、「artisan config:publish ...」を介して構成を公開します。それらを「非公開」にする方法はありますか?

回答:


597

次のコマンドを実行すると、ベンダー(またはパッケージをインストールする場所)、composer.json、およびcomposer.lockからパッケージが削除されます。ベンダー/パッケージを適切に変更します。

composer remove vendor/package

明らかに、アプリ内でそのパッケージへの参照を削除する必要があります。

現在、次のバージョンのcomposerを実行しています。

Composer version 1.0-dev (7b13507dd4d3b93578af7d83fbf8be0ca686f4b5) 2014-12-11 21:52:29

13
次に、実行composer updateしてベンダー/パッケージフォルダーをベンダーから削除します
Zeshan

11
@ZeshanKhattak composerの更新により、すべての依存関係が更新されます。プロジェクトを不安定な状態のままにします。依存関係を更新したい場合を除いて、composer updateを使用しないでください
zarax

11
composer remove packagename、それはcomposer.jsonからのパッケージの削除を更新し、ベンダーからパッケージフォルダーを削除します... laravel-5.4.24、composer-1.4.2。

composerが実行後に不足しているパッケージを自動的にインストールしているようcomposer remove <package>です。とにかくそれを避けるには?バージョン1.7.2を使用します。
OlleHärstedt、2018

代わりに:composer remove package_name:composer remove vendor / package laravelがパッケージのベンダーディレクトリを自動的にチェックインするため、ベンダーは必要ありません。
はつらつ

171

うまくいきました... Laravelからパッケージを削除する手順は次のとおりです。

  1. composer.jsonから宣言を削除します(「require」セクション内)
  2. 「app / config / app.php」からサービスプロバイダーを削除します(「providers」配列の参照)
  3. 「app / config / app.php」からクラスエイリアスを削除します
  4. コードからパッケージへの参照を削除します:-)
  5. 「composer update vendor / package-name」を実行します。これにより、「vendor」フォルダーからパッケージフォルダーが削除され、composerの自動読み込みマップが再構築されます。
  6. 公開されたファイルを手動で削除する(zwackyによるコメントを読む)

「ベンダー」フォルダからパッケージフォルダを削除します


2
ただし、assets / configsの非公開は実際には自動化されたものではありません。私は通常config /またはpublic /のベンダー/パッケージフォルダーを手動で削除します。
zwacky 14

7
これで、laravelは、「パッケージ<package-name>の削除」のようなものを考え出して、簡単にする必要があります。
Chandan Gupta 2014

19
このソリューションの問題は、他のすべてのパッケージを更新することです。
15年

3
(1)と(5)はrunning composer remove vendor/packageに置き換えることができると思います。
JCarlosR 2017

この手順は、機能していないIgaster / laravel-themeパッケージを削除するのに役立ちました
Jjsg08

59

次のコマンドを実行する

composer remove Vendor/Package Name

それで全部です。作曲家の更新は必要ありません。ベンダー/パッケージ名は以前にインストールされたとおりのディレクトリです


1
私はこれを実行しましたが、composer.jsonでは不要になっているため、「無視する」
Sweet Chilly Philly

1
composer remove <packageName>これはパッケージを削除するのに最適だと思います。忘れてくださいVendor:)たとえば、composer remove laravel/tinker
Shamsul Huda

43

通常composer remove、このように使用すれば十分です:

$ composer remove vendor/package

しかし、composerパッケージが削除され、構成キャッシュがクリーンアップされない場合、そのようにしようとするとクリーンアップできません

php artisan config:clear

エラーが発生する可能性があります In ProviderRepository.php line 208:

クラス 'Laracasts \ Flash \ FlashServiceProvider'が見つかりません

ファイルを削除しない限り、これは行き止まりです

$rm bootstrap/cache/config.php

そして、これは私が話しているLaravel 5.6であり、非常に古いものではありません。

これは通常、古いキャッシュの上に新しいリリースのファイルをコピーするときに、自動展開で発生します。コピーする前にキャッシュをクリアしても。あなたは古いキャッシュと新しいcomposer.jsonで終わります。


2
私はそれが5.7で修正されると思います
Yevgeniy Afanasyev '15

1
5.6では、私のブートストラップ/キャッシュは空でした。キャッシュパス(config / cache.php)を変更したことを忘れていました。新しいキャッシュフォルダー内のファイルを削除すると、問題が解決しました。
Aine

2
@YevgeniyAfanasyev 5.7でも修正されていません
Shreyansh Panchal

2
私はこれに私の髪を抜くのにほぼ3時間を費やしました。config:clearこれを直そうと思った。
Shreyansh Panchal

34

ターミナルでfollwingコマンドを入力するだけでパッケージを削除でき、パッケージのインストール時に指定したプロバイダーとエイリアスがあれば削除して、コンポーザーを更新します。

composer remove vendor/your_package_name
composer update

1
新しい依存関係を更新するために、コンポーザーを更新する必要がある場合があります。実行しても害はないと思います。
Shahrukh Anwar

18

次の2つの方法のいずれかを実行できます。

  1. 以下のコマンドを実行します(他のパッケージを更新せずにパッケージを削除する最も推奨される方法)

    $ composer remove vendor/package

  2. composer.jsonファイルに移動し、以下のようなコマンドを実行すると、パッケージが削除されます(ただし、他のパッケージも更新されます)

    $ composer update


17

composer.json宣言からパッケージを削除する前に、キャッシュを削除してください

php artisan cache:clear  
php artisan config:clear 

キャッシュを削除するのを忘れて、クラスが見つからないというエラーが表示される場合は、パッケージを再インストールしてキャッシュをクリアし、再度削除してください。


16

最もシンプルで簡単な方法

構文:

composer remove <package>

例:

composer remove laravel/tinker

15

上記のすべての手順を実行してもエラーが発生する場合は、プロジェクトに移動してbootstrap->cache->config.php、キャッシュされた配列からプロバイダーとエイリアスのエントリを手動で削除します。


これは私を助けました。
Peter Griffin

1
一部のパッケージベンダーは、パッケージを作成するためのすべての要件を満たしていません。そのため、これらのベンダーcomposer remove vendor/packageはキャッシュエントリを適切に削除できません。したがって、@ Ramjith Apはここでは完全に正しいです。
Samrat Khan

12

**

「composer remove vendor / package」を使用してください

** これは例です: パッケージのインストール/追加

composer require firebear/importexportfree

アンインソール/削除

composer remove firebear/importexportfree

最後に削除した後:

php -f bin/magento setup:upgrade

php bin/magento setup:static-content:deploy f

php bin/magento indexer:reindex 

php -f bin/magento cache:clean

9

composerコマンドを使用してパッケージを削除するには

composer remove <package>

composerコマンドを使用してパッケージをインストールするには

composer require <package>

composer.jsonに記載されているすべてのパッケージをインストールするには

composer install

パッケージを更新するには

composer update

Laravelプロジェクトでこれらを使用しました


9

ターミナルで次のコマンドを入力してパッケージを削除し、パッケージのインストール時に指定したプロバイダーとエイリアスを削除して、コンポーザーを更新することができます

composer remove <package_name>
composer update

8

与えられた答えがそれでもあなたがそれを取り除くのを助けない場合は、これを試してください:

  • requireからラインを手動で削除composer.json

  • 走る composer update


3

私たちは素晴らしいソリューションを手に入れました。この解決策は実際にはLaravel 6で行われます。Laravelプロジェクトからパッケージを削除する場合は、以下の手順に従ってパッケージを簡単に削除できます。

ステップ1:削除するパッケージ名を知っている必要があります。完全なパッケージ名がわからない場合は、プロジェクトフォルダーを開いてcomposer.jsonファイルに移動し、配列を必要とする名前を確認できます。

"require": {
        "php": "^7.2",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "^6.2",
        "laravel/passport": "^8.3",
        "laravel/tinker": "^2.0"
    },

ここで、「fideloper / proxy」パッケージを削除するとします。

手順2:プロジェクトのルートフォルダーディレクトリでコマンドプロンプトを開き ます。手順3:まず、次のコマンドを実行してすべてのキャッシュをクリアします。コマンドを1つずつ実行します。ここに画像の説明を入力してください

php artisan cache:clear  
php artisan config:clear 

ステップ4:次に、次のコマンドを記述してパッケージを削除します。ここでは、私のサンプルパッケージではなく、パッケージ名を変更する必要があります。

composer remove fideloper/proxy

ここで、パッケージが削除されるまで数秒待ちます。


2
またはcomposer remove laravel/telescope --dev
開発

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.