2017-06-20 65 views
2

在我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,另一个没有。

+0

我关闭了这个作为一个愚蠢的https://stackoverflow.com/questions/37069178/what-is-the-meaning-of-a-null-reference-in-composer-lock-file,但在第二次看,我已经扭转了我的决定,因为*这两个都是.zip文件。 – ceejayoz

回答

2

我检查了两个模块的代码并阅读了一些文章。经过一些研究并与JS开发人员讨论后,我开始知道composer文件中的'reference'表示PHP库标签,分支或zip文件。例如,如果我说我的软件包引用来自"reference":"master",那么每次运行composer update命令时都会从该存储库中提取代码。定义一个引用是一种省略添加一个编辑器文件到库本身的需求的方法。但是,如果您的库已经在其自己的目录中使用composer.json文件来支持composer,那么您将不需要在composer文件中定义该包。

现在,让我们来看看这两个模块。首先,检查段落模块的源代码树http://cgit.drupalcode.org/paragraphs/tree/?h=8.x-1.x,您将注意到没有可用的composer.json文件,因此我们必须在composer文件中定义引用参数,以告诉应用程序选择正确的源文件。但另一方面,如果您在http://cgit.drupalcode.org/redirect/tree/处看到重定向模块的代码源树,则会在该文件的根目录中找到composer.json。该文件将允许您从应用程序composer.json文件中省略引用参数。

另外,我想如果我们没有定义这个参数,最新版本将会被引入,并且基于上述标准,composer.lock文件在composer install命令运行时得到更新。

希望这会消除你的疑惑!

+0

感谢您的彻底澄清! – edwardchiapet