Php 作曲家更新拉威尔

Php 作曲家更新拉威尔,php,laravel,composer-php,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\\BigWa

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

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>

有什么想法吗?这是一个完整的日志

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

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

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

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

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

  • 迁移用于数据库更改,而不是编译资产之类的随机操作。完成迁移并从中删除该代码

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


  • 据我所知,最佳实践似乎是在开发期间(即,当您对较少的文件进行更改时,最好使用类似的工具)和部署之前根据需要编译资产。

    以下内容对我适用:

    composer update --no-scripts
    

    这是用于编写器更新的命令。请尝试此


    编写器自我更新

    在终端中编写此命令:

    作曲家更新

    您可以使用:

    composer self-update --2
    

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

    也显示您的
    composer.json
    。它正在尝试编译更少的。。。修复
    style.less
    文件第102行的color错误?@DavidBarker我认为你是对的,但是为什么它在迁移过程中会这样做呢?另一个开发人员在做什么?我甚至不确定我是否能将它安装到composer?另外,我放弃了使用任何一个PHP较少的编译器,因为它们有时不是最新的,并且在编译诸如引导之类的东西时会遇到麻烦。因此,问题可能不在于
    style.less
    文件,而在于compiler.TL;DR
    composer更新--没有脚本
    +1&谢谢你能解释为什么这是必要的吗?