作曲家更新 Laravel

Posted

技术标签:

【中文标题】作曲家更新 Laravel【英文标题】:Composer Update Laravel 【发布时间】:2014-09-07 02:38:24 【问题描述】:

一位开发人员已将他的项目发送给我,但当我尝试更新或安装我的供应商时,一切都很好,直到最后,它会输出以下消息。

C:\xampp\htdocs\BigWaveMedia\davinkit>php artisan migrate

    "error": 
        "type": "Exception",
        "message": "expected color value: failed at `.clearfix;` C:\\xampp\\htdocs\\BigWaveMedia\\davinkit\\app\\start\/..\/..\/public\/less\/style.less on line 102",
        "file": "C:\\xampp\\htdocs\\davinkit\\vendor\\leafo\\lessphp\\lessc.inc.php",
        "line": 3258
    

C:\xampp\htdocs\BigWaveMedia\davinkit>

有什么想法吗?这是完整的日志http://pastebin.com/y9q4Rc5z

【问题讨论】:

也显示你的composer.json 它正在尝试编译 LESS... 修复 style.less 文件第 102 行的颜色错误? @DavidBarker 我认为您是对的,但是为什么在迁移期间会这样做?其他开发者在做什么? 我不确定我什至可以把它交给 composer install 吗? 另外,我放弃了使用任何 PHP LESS 编译器,因为它们有时不是最新的,并且在编译 Bootstrap 之类的东西时会遇到问题。因此,问题可能不在于style.less 文件,而可能是编译器。 【参考方案1】:

当您运行composer update 时,composer 会生成一个名为composer.lock 的文件,其中列出了您的所有软件包和当前安装的版本。这允许您稍后运行composer install,它将安装该文件中列出的包,重新创建您上次使用的环境。

从您的日志中可以看出,composer.lock 文件中列出的某些软件包版本不再可用。因此,当您运行composer install 时,它会抱怨并失败。这通常没什么大不了的 - 只需运行 composer update,它就会尝试构建一组协同工作的包并编写一个新的 composer.lock 文件。

但是,您遇到了不同的问题。看来,在您的 composer.json 文件中,原始开发人员添加了一些失败的更新前或更新后操作,特别是 php artisan migrate 命令。这可以通过运行以下命令来避免:composer update --no-scripts

这将运行作曲家更新,但会跳过添加到文件中的脚本。您应该能够以这种方式成功运行更新。

但是,这并不能长期解决问题。有两个问题:

    迁移是为了数据库更改,而不是像编译资产这样的随机事情。完成迁移并从那里删除该代码。

    不应在每次运行 composer update 时编译资产。从composer.json 文件中删除该步骤。

根据我的阅读,最佳实践似乎是在开发过程中根据需要编译资产(即,当您更改 LESS 文件时 - 最好使用像 gulp.js 这样的工具)和之前部署。

【讨论】:

TL;DR composer update --no-scripts +1 & 谢谢【参考方案2】:

以下对我有用:

composer update --no-scripts

【讨论】:

【参考方案3】:

这是作曲家更新的命令,请试试这个...

作曲家自我更新

【讨论】:

你能解释一下为什么这是必要的吗?【参考方案4】:

在你的终端中写下这个命令:

作曲家更新

【讨论】:

为什么?请在您的答案中添加一些解释,以便其他人可以从中学习。 OP 已经写到composer update 会触发错误,所以我怀疑再次运行它会神奇地解决问题【参考方案5】:

你可以使用:

composer self-update --2

更新到2.0.8版本(最新稳定版)

【讨论】:

请分享更多细节。这与给定的问题有什么关系?为什么更新 Composer 可以解决问题?

以上是关于作曲家更新 Laravel的主要内容,如果未能解决你的问题,请参考以下文章

Linode停止作曲家更新[重复]

尝试自我更新作曲家时出错

作曲家更新 Laravel

如何恢复作曲家更新?

尝试自我更新作曲家时权限被拒绝

作曲家自我更新 TransportException