在我的composer.lock
文件中,我注意到一些包具有reference
值:
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/paragraphs-8.x-1.1.zip",
"reference": "8.x-1.1",
"shasum": "c678e5704a98c6a0549e415412da081cfeb03a00"
},
有些只是null
:
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/redirect-8.x-1.0-alpha5.zip",
"reference": null,
"shasum": "927aa4c8d8b40b0cd2442bee86f2f386d25e53ca"
},
该值指的是什么?我以为它指的是提交,但这两个都是zip
包,其中 1 个有reference
,另一个没有。
我已经检查了两个模块的代码并阅读了一些文章。经过一些研究和与JS开发人员的讨论,我了解到作曲家文件中的"引用"表示PHP库标签,分支或zip文件。因此,例如,如果我说我的包引用来自"reference":"master"
那么每次运行作曲家更新命令时,都会从该存储库中提取代码。定义引用是一种省略将作曲家文件添加到库本身的要求的方法。但是,如果您的库已经在自己的目录中使用 composer.json 文件支持作曲家,则无需在作曲家文件中定义包。
现在,让我们来看看这两个模块。首先,在 http://cgit.drupalcode.org/paragraphs/tree/?h=8.x-1.x 检查 Passage 模块的源代码树,您会注意到那里没有可用的 composer.json 文件,因此我们必须在 composer 文件中定义引用参数以告诉应用程序选择正确的源文件。但另一方面,如果您在 http://cgit.drupalcode.org/redirect/tree/看到重定向模块的代码源代码树,您将在文件的根目录中找到一个 composer.json。此文件将允许您从应用程序 composer.json 文件中省略引用参数。
另外,我认为如果我们不定义此参数,则将拉入最新的参数,并根据上述条件composer.lock文件在composer安装命令运行时进行更新。
希望这能消除您的疑虑!