我在过去几周内使用yii2框架。但现在我的作曲家本身也遇到了一些问题。
仅供参考,我使用的是ubuntu 14.04
当我需要一些新的包/扩展时,我使用composer require命令添加composer。但我注意到有时它会从我的供应商和项目中删除一些现有的软件包。
我尝试了以下命令。
composer require dmstr/yii2-adminlte-asset "*"
composer require 2amigos/yii2-file-upload-widget:~1.0
还尝试了一些谷歌搜索。
但它没有用。
有没有办法在不删除现有软件包或没有任何composer update命令的情况下将新软件包/扩展添加到现有的yii 2项目中?
Composer.json
{
"name": "sganz/yii2-advanced-api-template",
"description": "Improved Yii 2 Advanced Application Template By Sandy Ganz, Original by Nenad Zivkovic",
"keywords": ["yii2", "framework", "advanced", "improved", "application template", "nenad", "sganz"],
"type": "project",
"license": "BSD-3-Clause",
"support": {
"tutorial": "http://www.freetuts.org/tutorial/view?id=6",
"source": "https://github.com/sganz/yii2-advanced-api-template.git"
},
"minimum-stability": "dev",
"prefer-stable":true,
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "*",
"yiisoft/yii2-bootstrap": "*",
"yiisoft/yii2-swiftmailer": "*",
"nenad/yii2-password-strength": "*",
"mihaildev/yii2-ckeditor": "*",
"dmstr/yii2-adminlte-asset": "*"
},
"require-dev": {
"yiisoft/yii2-codeception": "*",
"yiisoft/yii2-debug": "*",
"yiisoft/yii2-gii": "*",
"yiisoft/yii2-faker": "*",
"codeception/specify": "*",
"codeception/verify": "*"
},
"config": {
"vendor-dir": "protected/vendor",
"process-timeout": 1800
},
"extra": {
"asset-installer-paths": {
"npm-asset-library": "protected/vendor/npm",
"bower-asset-library": "protected/vendor/bower"
}
}
}
对此的任何帮助将不胜感激。
答案 0 :(得分:2)
尝试
composer --no-update require dmstr/yii2-adminlte-asset:*
答案 1 :(得分:0)
要避免卸载其他扩展程序,请执行以下步骤。
1) "dmstr/yii2-adminlte-asset" : "2.*"
2) "2amigos/yii2-file-upload-widget": "~1.0"
到composer.json文件的require部分。
2) php composer.phar update
在Cmd中运行此命令。
答案 2 :(得分:0)
您的问题是,已删除的软件包不在require
的{{1}}和require-dev
部分。因此,我假设已移除的包以前是composer.json
中任何其他包所需的(子),并且这些包的较新版本已被删除。这应该是正常的行为,应该对您的项目没有问题!
正如@Bizley已经表明,您可以在不更新旧要求的情况下添加要求:
composer.json
答案 3 :(得分:0)
几天前我在安装一个包时遇到了这个问题,但是当我安装这个包时,所有的项目都更新了,我的项目坏了。所以我再次更换了我的最后一个供应商,所以我找到了一种更好更安全的升级包的安全方法:
- Upgrading yiisoft/yii2 (2.0.39.3 => 2.0.41.1): Extracting archive
表示您当前的版本是 2.0.39.3,因此请在 composer.json 上复制此版本,如下所示:(没有 ~ 和 ^)"yiisoft/yii2": "2.0.39",
composer install
或 composer update
。注意:在您的项目正常运行之前不要删除 vendor 和 composer.json 备份,然后您可以删除它们。
*这是一种手动升级供应商的方法,不要在重要框架更新中进行临时升级,例如 yii 发布了 Yii2.0.41 的我的项目更新。
一个非常重要的说明来自 here 的 yii 升级说明:
注意:本文档假设您已全局安装 composer,以便您可以运行 composer 命令。如果您的项目中有 composer.phar 文件,则需要在下面将 composer 替换为 php composer.phar。
提示:升级复杂软件项目的依赖项总是有破坏某些东西的风险,因此请确保您有备份(无论如何您都应该这样做;))。
因此直接运行 composer update
命令可能会像我一样破坏您的应用程序的一部分,以至于我的管理面板被破坏了。
祝你好运;)