Composer:在包 URL 中包含版本变量

Posted

技术标签:

【中文标题】Composer:在包 URL 中包含版本变量【英文标题】:Composer: Include version variable in package URL 【发布时间】:2018-01-31 16:15:45 【问题描述】:

我有一个包,它在下载 URL 中包含它的版本号:https://example.com/zip/4.3/package.zip

有没有办法将版本号作为变量传递,这样我就不必在每次发布时更改包 URL?

像这样:


  "type": "package",
  "package": 
    "name": "example/package",
    "version": "4.3",
    "dist": 
      "type": "zip",
      "url": "https://example.com/zip/$version/package.zip"
    
  

我在documentation 中找不到有关此主题的任何信息。

【问题讨论】:

【参考方案1】:

可以像这样使用private-composer-installer 完成:%version


  "type": "package",
  "package": 
    "name": "example/package",
    "version": "4.3",
    "dist": 
      "type": "zip",
      "url": "https://example.com/zip/%version/package.zip"
    ,
    "require": 
      "ffraenz/private-composer-installer": "^4.0"
    
  

这里是一个使用环境变量的例子:


  "type": "package",
  "package": 
    "name": "package-name/package-name",
    "version": "1.0.0",
    "dist": 
      "type": "zip",
      "url": "https://example.com/package-name.zip?key=%PACKAGE_KEY&version=%VERSION"
    ,
    "require": 
      "ffraenz/private-composer-installer": "^4.0"
    
  

【讨论】:

如果您想安装 WordPress 高级软件包,SatisPress 可能是更好的选择。在这里查看我的答案:***.com/a/59610919/1410103【参考方案2】:

根据composer/composer#6631,无法在包 URL 中使用变量:

No, and I do not really see a good use-case for this either, so it is very unlikely to be included.

【讨论】:

以上是关于Composer:在包 URL 中包含版本变量的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress:在 url 中包含语言变量

Typeahead.js 在远程 url 中包含动态变量

如何在 GitHub 存储库中包含 Composer

【java问题】在java语言中,在包p1中包含包p2,类A直接隶属于p1,类B直接隶属于包p2,

在 YAML 变量中包含 jekyll / 液体模板数据?

ipv6地址在URL中的表达方式,如何在URL地址中包含ipv6地址