作曲家更新Laravel

Bre*_*ent 22 php laravel composer-php

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

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>
Run Code Online (Sandbox Code Playgroud)

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

Kry*_*ten 48

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

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

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

这将运行编辑器更新,但将跳过添加到文件的脚本.您应该能够以这种方式成功运行更新.

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

  1. 迁移用于数据库更改,而不是编译资产等随机内容.完成迁移并从那里删除该代码.

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

根据我的阅读,最佳实践似乎是在开发过程中根据需要编译资产(即,当您对LESS文件进行更改时 - 理想情况下使用gulp.js等工具)并在部署之前.

  • **TL; DR**`composer update --no-scripts` +1&thanks (13认同)

Ghu*_*bar 20

以下适用于我:

composer update --no-scripts
Run Code Online (Sandbox Code Playgroud)