Composer Install 不能安装最新添加的 Package,而是要把所有的包重新下载?

2019-09-03 15:41:25 +08:00
 TangMonk

这个有点坑啊,怎么不向 bundler, npm 学习下

4968 次点击
所在节点    PHP
18 条回复
carlosforppp
2019-09-03 16:16:16 +08:00
composer update
skyjerry
2019-09-03 16:19:57 +08:00
你要用 composer require
silenceeeee
2019-09-03 17:05:10 +08:00
你说的应该是 composer require 的功能吧,建议过一下 composer 的教程啊
xiaoriri666
2019-09-03 17:42:50 +08:00
composer update 包名
可以只更新指定的扩展啊,多看看教程
yunye
2019-09-03 17:49:50 +08:00
垃圾 PHP 趁早换语言😉
TangMonk
2019-09-03 17:55:00 +08:00
@carlosforppp #1
@xiaoriri666 #4
这个会把所有的包都 update
TangMonk
2019-09-03 17:55:27 +08:00
@silenceeeee #3
@skyjerry #2

如果包很多,得一个一个 require。
TangMonk
2019-09-03 18:02:41 +08:00
@yunye #5 PHP 还是有很多优点的,只是用过 ruby 之后用其他语言都有点强迫症
yunye
2019-09-03 18:26:06 +08:00
好歹先看下 composer 用法再来横评吧
linxiaojialin
2019-09-03 18:51:03 +08:00
1.你之前 composer install 后生成的 composer.lock 文件还在不在?在的话再次执行 composer install 不会自动更新所有包的.
2.添加新包最好用 composer require.
3.新包很多的话,也可以手动添加到 composer.json,再执行 composer install.
4.记得.json 和.lock 文件同时提交 Git.
5.PHP is the best language in the world.
TangMonk
2019-09-03 19:45:23 +08:00
@yunye 我看过,有人给 composer 反馈也不改

https://github.com/composer/composer/issues/2969
TangMonk
2019-09-03 19:49:05 +08:00
@linxiaojialin 是这样,我在本地 require 了一些包,然后同步更新到服务器上,再执行 install,服务器上以前安装的包又安装一遍,这是没必要的步骤。
cszchen
2019-09-04 01:14:38 +08:00
先找自身的问题,composer 不会重复安装,全世界都用的很开心
cszchen
2019-09-04 01:17:23 +08:00
composer install 会根据你开发时安装的版本来安装包,避免兼容问题。如果要更新用 composer update xxx
dvaknheo
2019-09-04 09:30:08 +08:00
@linxiaojialin .lock 要存在 GIT 里? 不对吧,这不是用于锁定不再重新下载的么。
linxiaojialin
2019-09-04 10:08:25 +08:00
@TangMonk 你是指 install 时,除了安装你添加的新包,还安装了其他包吗?不确定你的服务器是否有历史问题。不过猜测可能以下几种情况:

1.composer 的 json 和 lock 异常。例如有人更新了 composer.json,但没把 composer install 后重新生成的 composer.lock 一同提交到 Git。所以现在执行 install 会更新 lock 文件,并同步之前没有更新的包。

2.composer 的 json 和 lock 正常,但服务器上安装不同步。例如曾经更新过依赖包,而服务器上 git pull 代码后,没有执行 composer install。所以现在执行 install 会同步之前没有更新的包。

3.composer 的 json 和 lock 正常,服务器上安装也同步的。但是你没有认真看过 composer 文档或英文不好,误以为“ Discovered Package ”是重新安装。

以上问题,你都可以再执行 composer install 看看输出结果,可以多执行几次,看看是否有提示“ Nothing to install or update ”。
linxiaojialin
2019-09-04 10:11:03 +08:00
@dvaknheo 是的,要保证各个环境安装的依赖是一致的。
lp7631010
2019-09-13 14:13:27 +08:00
你怕是不知道版本不同会不兼容这码事吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597542

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX