如何在安装包时为供应商中的子文件夹设置自定义文件夹路径?

时间:2016-10-03 08:00:36

标签: composer-php package

我想在我的本地项目中安装一个包。为此我在我的项目文件夹中创建了一个composer.json文件,它在下面给出了该包的总供应商文件夹到我项目中的自定义文件夹中。它的工作正常......

{
"config": {
        "vendor-dir": "/var/www/html/Test2/Testing/Down"
    },
}

它将包裹放入'Down'文件夹。

但是,现在我希望该软件包中的子文件夹或文件安装在我的项目中的js / css文件夹等自定义文件夹中。

例如,我想将jquery.js文件放入我的本地文件夹路径

  /var/www/html/Test2/Testing/assests/js

从包“frameworks / jquery”。

为此,我的composer.json文件需要进行哪些更改?

2 个答案:

答案 0 :(得分:1)

Composer用于引入包以支持项目的PHP代码,以下是他们在Composer网站上描述它的方式:

  

Composer是PHP中依赖项管理的工具。它允许你   声明您的项目依赖的库,它将进行管理   (安装/更新)它们。

换句话说,如果您需要登录PHP代码并决定使用公开的monolog包,您可以使用composer将该包带入您的项目,然后在您的PHP代码中,您可以调用monolog函数。

使用config重命名vendor目录正试图以不符合工具意图的方式使用Composer。 vendor目录用于保存引入的包(例如monolog代码)。 vendor-dir值只是重命名该目录。

由于您已将GitHub列为标记,因此您可以使用克隆将文件存入您的网站目录。

答案 1 :(得分:0)

我修改了我的composer.json文件,它如下所示:

{
"config": {
        "vendor-dir": "/var/www/html/Test2/Testing/Down"
    },
"require": {
},
"scripts": {
    "post-package-install": [
        "php -r \"exec('cp -r /var/www/html/Test2/Testing/Down/frameworks/jquery/* /var/www/html/Test2/Testing/assets/js');\""
    ]
}
}

它会将包中的所有选定文件提供给我的本地文件夹。

简要地说,'frameworks / jquery'文件夹中的文件被复制到我当地的'assets / js'文件夹中。