作曲家更新 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;DRcomposer update --no-scripts
+1 & 谢谢【参考方案2】:
以下对我有用:
composer update --no-scripts
【讨论】:
【参考方案3】:这是作曲家更新的命令,请试试这个...
作曲家自我更新
【讨论】:
你能解释一下为什么这是必要的吗?【参考方案4】:在你的终端中写下这个命令:
作曲家更新
【讨论】:
为什么?请在您的答案中添加一些解释,以便其他人可以从中学习。 OP 已经写到composer update
会触发错误,所以我怀疑再次运行它会神奇地解决问题【参考方案5】:
你可以使用:
composer self-update --2
更新到2.0.8版本(最新稳定版)
【讨论】:
请分享更多细节。这与给定的问题有什么关系?为什么更新 Composer 可以解决问题?以上是关于作曲家更新 Laravel的主要内容,如果未能解决你的问题,请参考以下文章