programing

Composer 설치 경로를 지정하는 방법

sourcetip 2022. 10. 18. 22:39
반응형

Composer 설치 경로를 지정하는 방법

정의는 다음과 같습니다.

{
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "symfony/sfGuardPlugin",
                "version": "4.0.2",
                "dist": {
                    "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz",
                    "type": "tar"
                }
            }
        }
    ],
    "require": {
        "symfony/sfGuardPlugin": "4.0.*"
    }
}

Symfony 1을 사용하고 있는데 설치하려고 합니다.plugins/sfGuardPlugin/이걸 어떻게 지정하죠?

정의 가능한 것 같습니다.vendordir는 다른 무엇인가가 될 것이다.plugins고객님의 경우) :

{
    "config": {
        "vendor-dir": "plugins"
    }
}

그런 다음 패키지 이름에 다음과 같이 레벨 dir가 포함되지 않도록 이름을 변경할 수 있습니다.

        "package": {
            "name": "sfGuardPlugin",

그래서, 당신의composer.json는 다음과 같습니다.

{
    "config": {
        "vendor-dir": "plugins"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "sfGuardPlugin",
                "version": "4.0.2",
                "dist": {
                    "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz",
                    "type": "tar"
                }
            }
        }
    ],
    "require": {
        "sfGuardPlugin": "4.0.*"
    }
}

편집

이 구성을 사용하면 다음과 같은 경로를 얻을 수 있습니다(물론 symfony에는 적합하지 않습니다).

플러그인/sfGuardPlugin/sfGuardPlugin-4.0.2/

이것으로 해결 방법을 찾았습니다.composer.json:

{
    "config": {
        "vendor-dir": "plugins"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "sfGuardPlugin",
                "version": "4.0.2",
                "source": {
                    "url": "http://svn.symfony-project.com/plugins/sfGuardPlugin/",
                    "type": "svn",
                    "reference": "branches/1.3/"
                }
            }
        }
    ],
    "require": {
        "sfGuardPlugin": "4.0.*"
    }
}

또한 "symfony1-plugin" 패키지 유형을 가진 다중 프레임워크 Composer 라이브러리 설치 프로그램인 Composer/installer를 사용할 수도 있습니다.Symfony 1.4(lib/vendor)와 플러그인을 모두 설치하기 위한 composer.json 파일은 다음과 같습니다.

{
    "config": {
        "vendor-dir": "lib/vendor"
    },
    "repositories": {
        "symfony": {
            "type": "package",
            "package": {
                "name": "symfony/symfony1",
                "version": "1.4",
                "dist": {
                    "url": "https://github.com/symfony/symfony1/zipball/1.4",
                    "type": "zip"
                }
            }
        },
        "sfResquePlugin" : {
            "type": "package",
            "package": {
                "name": "devpips/sfResquePlugin",
                "type": "symfony1-plugin",
                "version": "0.1",
                "dist": {
                    "url": "https://github.com/devpips/sfResquePlugin/zipball/master",
                    "type": "zip"
                }
            }
        }
    },
    "require": {
        "composer/installers": "dev-master",
        "symfony/symfony1": "1.4",
        "devpips/sfResquePlugin":"0.1"
    }
}

환경변수를 참조해 주세요.

이 변수를 설정하면 Composer가 종속성을 벤더 이외의 디렉토리에 설치하도록 할 수 있습니다.

vagrant 또는 도커와 같이 공유 폴더/볼륨에 저장되지 않는 특정 환경에서 이 기능을 재정의할 경우 유용합니다.

그리고 J0k가 말했듯이config의 단면composer.json

기본값은 벤더입니다.필요에 따라서, 종속성을 다른 디렉토리에 인스톨 할 수 있습니다.$HOME 및 ~는 홈 디렉토리의 경로(vendor-dir)와 아래의 모든 *-dir 옵션으로 대체됩니다.

언급URL : https://stackoverflow.com/questions/11883374/how-to-specify-composer-install-path

반응형