Composer - 安装包而不将其保存到composer.json

时间:2018-01-30 14:42:34

标签: drupal composer-php drupal-8

我正在尝试创建一个生成即用型Drupal 8的composer.json(基于优秀的Drupal Project)。它运作良好,但我希望包含一个自定义主题,可以作为任何开发人员的基础。这个主题是在composer.json "my-package/my-theme": "*"中调用的,并自动包含在Drupal的主题文件夹中。完美!

问题是:当您对此主题进行更改时,如果您运行composer installcomposer update,则会删除所有更改。我知道这是Composer的正常行为。

那么,是否可以安装包而不将其保存到composer.json / composer.lock中?

  • 我试图做composer remove my-package/my-theme --no-update,但它只在composer.json而不是composer.lock中删除了我的包,它们给出了相同的结果。
  • 我应该安装我的软件包,然后从composer.json和composer.lock手动删除它吗?
  • 我错过了一个秘密选项吗?

2 个答案:

答案 0 :(得分:1)

如果您的主题是安装配置文件的一部分,则它应该出现在composer.json文件中。您的开发人员应仅将该主题用作基本主题并创建子主题。在该子主题中,开发人员可以覆盖CSS以及模板文件和模板函数。

答案 1 :(得分:0)

撰稿人撰稿人

Answered here

  

这也是故意不可能的,不是缺失的特征或   任何东西。供应商文件夹是Composer独自干预的。

     

Fyi - Node的npm不仅可以在不保存的情况下安装软件包   他们,甚至是默认的。这是许多人的主要原因之一   人们正在使用yarn,因为它不能保存,因为它是   在向您的生产部署时发现非常令人沮丧   忘了将--save添加到该重要依赖项中。作曲家之一   主要设计目标是依赖性的绝对dev/prod parity

我找到了an alternative solution给任何有同样问题的人:

  

对于任何想要与我达成同样目标的人,我终于成功了   安装后启动的自定义脚本:

     
      
  • 制作主题文件夹
  • 的副本   
  • 将之前主题系统名称的任何提及更改为新的(文件名+直接进入文件)
  •   
  • 使用composer remove命令删除主题
  •   
  • 最后启用新主题
  •   
     

它对我有用,因为下载的主题只是一个基础   开发而不是将要更新的实际主题。