我正在尝试创建一个生成即用型Drupal 8的composer.json(基于优秀的Drupal Project)。它运作良好,但我希望包含一个自定义主题,可以作为任何开发人员的基础。这个主题是在composer.json "my-package/my-theme": "*"
中调用的,并自动包含在Drupal的主题文件夹中。完美!
问题是:当您对此主题进行更改时,如果您运行composer install
或composer update
,则会删除所有更改。我知道这是Composer的正常行为。
那么,是否可以安装包而不将其保存到composer.json / composer.lock中?
composer remove my-package/my-theme --no-update
,但它只在composer.json而不是composer.lock中删除了我的包,它们给出了相同的结果。答案 0 :(得分:1)
如果您的主题是安装配置文件的一部分,则它应该出现在composer.json文件中。您的开发人员应仅将该主题用作基本主题并创建子主题。在该子主题中,开发人员可以覆盖CSS以及模板文件和模板函数。
答案 1 :(得分:0)
这也是故意不可能的,不是缺失的特征或 任何东西。供应商文件夹是Composer独自干预的。
Fyi - Node的
npm
不仅可以在不保存的情况下安装软件包 他们,甚至是默认的。这是许多人的主要原因之一 人们正在使用yarn
,因为它不能保存,因为它是 在向您的生产部署时发现非常令人沮丧 忘了将--save
添加到该重要依赖项中。作曲家之一 主要设计目标是依赖性的绝对dev/prod parity。
我找到了an alternative solution给任何有同样问题的人:
对于任何想要与我达成同样目标的人,我终于成功了 安装后启动的自定义脚本:
- 制作主题文件夹
的副本- 将之前主题系统名称的任何提及更改为新的(文件名+直接进入文件)
- 使用composer remove命令删除主题
- 最后启用新主题
它对我有用,因为下载的主题只是一个基础 开发而不是将要更新的实际主题。