技巧:使用composer某个包仓库中未发布的最新版

一个composer包未发版,但是我急需使用它仓库的修改版,可以这么办:在 composer.json 中,在包的版本后,加入 @dev 即可。

举例:原代码为:

"require": {
  "topthink/framework": "^6.0",
}

改为:

"require": {
  "topthink/framework": "^6.0@dev",
}

然后再  composer update xxx 即可。

经过

在用前端调试代码时,突然后端 ThinkPHP6 报错,是一个PHP8.1的兼容性问题。简单改了下好使,想去官方仓库提交,发现实际官方仓库已经改好了,只是没有发版。所以 composer update 时就不会更新它。所以查了一下,发现直接在后面加个@dev就好使。我还尝试了另外一个方案,发现并不好用。

"config": {
  "preferred-install": {
    "topthink/framework": "source",
    "*": "dist"
  },
},

看来 preferred-install 用在这个场景不对。但是我还是要记一下,用 source 可以解决:This is useful if you want to make a bugfix to a project and get a local git clone of the dependency directly.

参考资料

https://stackoverflow.com/questions/14595772/have-composer-update-get-latest-version-from-git-repo

https://getcomposer.org/doc/06-config.md#preferred-install

点赞