Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Composer php Composer-仅安装一次?_Composer Php - Fatal编程技术网

Composer php Composer-仅安装一次?

Composer php Composer-仅安装一次?,composer-php,Composer Php,是否有一种方法可以让Composer只安装一次包(类似于默认模板,其中每个项目的源代码都会更改)?因此,软件包最初将包含在“require”中,但在第一次运行composer install后,它将被删除(理想情况下,通过命令行作为脚本的一部分) 我查看了composer-remove,但它似乎会删除目录,我不想要-我只是不想在.json或.lock中删除它,这样如果有人要克隆repo并运行composer-install甚至运行composer-update,不会覆盖此包的目录。它将在首次安装

是否有一种方法可以让Composer只安装一次包(类似于默认模板,其中每个项目的源代码都会更改)?因此,软件包最初将包含在“require”中,但在第一次运行
composer install
后,它将被删除(理想情况下,通过命令行作为脚本的一部分)

我查看了
composer-remove
,但它似乎会删除目录,我不想要-我只是不想在
.json
.lock
中删除它,这样如果有人要克隆repo并运行
composer-install
甚至运行
composer-update
,不会覆盖此包的目录。它将在首次安装后独立

实际上:
  • 用户A:
    composer安装
    ,对不再由composer管理的包A的源代码进行更改,创建忽略包B-Z但跟踪包A(不再是真正的包)和更改的git repo

  • 用户B:
    git克隆git@bitbucket.org:usera/repository
    光盘库
    composer安装

    安装了包B-Z,包A(再一次,不再是真正的包)是git存储库中的任何东西

希望这是清楚的。有人对此有什么想法吗

提议的解决办法
  • 每次用叉子包
    • 令人沮丧,因为每次使用此composer安装时都会发生这种情况
  • 固定版本号
    • 意味着每次更新一个这样的库时都要更新
      composer.json
      ,这不是什么大问题
  • 首次安装后替换
    composer.json
    ,如果dirname未更改,则不起作用
    • 可以通过脚本方便地完成,但表示repo中的另一个文件

    • 这里有一个安全的方法:

    • 在GitHub(是的,GitHub),您需要对自己的回购协议进行更改
    • 抓取您的回购协议的URL并将其添加到您的composer.json信息中:

      "repositories": [
          {
              "type": "git",
              "url": "https://github.com/your-user/your-forked-repo.git"
          }
      ],
      
    • 通常需要原始包装。Composer将解析为您的分叉版本

    • 现在,您可以控制对包的更改。只需记住从包的文件夹中提交即可。您的团队成员也将获得更新,将更改推送到GitHub,并告诉他们运行
      composer update

    • 因此,整个过程将一次又一次地发生(WP安装的初学者主题),因此每次都必须对包进行分叉。“这真的不太理想。”伊萨克,我想你应该早点说。检查来自Composer的命令,这可能是您真正想要的。因此,安装应该通过
      Composer安装更新的软件包,然后手动(或通过脚本)使用
      create project
      处理任何应该提供的内容?