2015-05-21 18:53:19 4873次浏览 5条回答 0 悬赏 10 金钱

请问自己在本机上用compsoer安装的工程可以正常跑,但是放上github后在服务器clone下来后提示确实vendor文件,有人告诉我需要用composer安装,我不太理解,请问具体应该怎么做呢,另外,其中的机制是什么,为什么直接把工程clone下来不是应该具备所有需要的文件了吗,谢谢

最佳答案

  • 大裤衩子 发布于 2015-05-21 22:50 举报

    vendor目录都是一样的 而且原则上不允许任何手动修改,所以完全没有必要纳入版本控制(在.gitignore里配置)。只需要知道composer.json就能知道vendor下都有什么,所以你克隆下代码后要安装vendor。如果你怕本地安装的插件和服务器上的插件版本有差异导致bug,那么composer.lock文件就可以起作用了,它记录了你当时安装插件的具体版本,团队其他小伙伴也可以根据lock文件安装和你完全一样版本的插件(包括yii2核心文件)。

  • 回答于 2015-05-21 19:02 举报

    因为.gitignore把vendor忽略掉了,你的情况,可以这样处理:
      将根目录的.gitignore打开,注释掉对/vendor的忽略

    # composer vendor dir
    #/vendor
    

      在vendor目录写个shell删除vendor中的所有.gitignore文件,每次执行过composer对vendor目录中的内容有更新,就执行一下这个shell,这样保证所有vendor的文件都能放到git库。比如clean.sh,内容如下:

    find -name '.gitignore' -exec rm -fv {} \;
    

      BTW,人家这样设计.gitignore是因为人家网速快,部署服务器的时候,执行一下composer update --prefer-dist即可得到vendor的文件。

  • 回答于 2015-05-22 11:39 举报

    帮忙顶下!

  • 回答于 2015-05-22 14:58 举报

    有忽略的文件。还得装忽略的文件

    觉得很赞
  • 回答于 2015-05-23 20:52 举报

    确定clone的根目录下有composer.jsoncomposer.lock
    安装好composer后到命令行到你的根目录下执行:

    php composer.phar global require "fxp/composer-asset-plugin:1.0.0"
    composer install
    

    然后vendor就回来了。

    2 条回复
    回复于 2015-05-24 09:40 回复

    你的方法就是薛哥的意图,但是个人建议在国内开发还是将vendor放git比较靠谱,尤其是team协同开发的项目。composer对天朝的国民而言是既爱又恨,最好是在国外服务器使用composer,加到git库,然后基友们pull下来即可。

    回复于 2015-05-24 14:31 回复

    确实,直接git同步更适合我朝大局域网用户。

您需要登录后才可以回答。登录 | 立即注册
小黑豆
职场新人

小黑豆

注册时间:2014-12-18
最后登录:2015-10-07
在线时长:8小时1分
  • 粉丝2
  • 金钱15
  • 威望0
  • 积分95

热门问题