Search code examples
phpsublimetext2composer-phpsublimetext

Where to find composer's global packages?


For a plugin for Sublime Text I was required to install a composer package globally.

In order to do this I had to run the following command:

composer global require "asm89/twig-lint" "@stable"

The installation started running and a few seconds later the package was installed. Voila! Well, not really.

Step two was to add some lines to my Sublime Text configuration file:

{
    "user": {
        "paths": {
            "windows": ["C:\\Users\\yourname\\.composer\\vendor\\bin"]
        },
    }
}

However, the plugin is not working. So I decided to check the path. And it appears there is no .composer directory in my profile directory. It isn't in my php directory either. And I can't find it anywhere.

I would like to know if there's a way to locate this directory and would appreciate any suggestions that can help me get this plugin to work.


Solution

  • You can query Composer to find where it has set the user $COMPOSER_HOME directory.

    composer config --list --global
    

    The [home] ... line refers to the default value of $COMPOSER_HOME.


    The word home can be used as a single parameter as well to show the configuration value.

    Example (Windows):

    > composer -n config --global home                
    C:\Users\<user>\AppData\Roaming\Composer
    

    Example (Linux):

    $ composer -n config --global home                
    /home/<user>/.composer
    

    Just as a final confirmation - the 'yourname' part in the configuration, would very likely need to be updated with your own Windows username - composer config will say where it puts the files.