2016-08-23 4 views
1

enter image description here Я использую рамки yii2 с последних нескольких недель. Но теперь у меня возникают проблемы с самим композитором.обновление композитора без зависимостей

Просто для информации, я использую Ubuntu 14.04

Когда мне требуется несколько новых пакетов/расширений, я композитор добавить с помощью композитора требуют команды. Но я заметил, что иногда он удаляет несколько существующих пакетов у моего поставщика и проекта.

Я пробовал следующие команды.

composer require dmstr/yii2-adminlte-asset "*" 

composer require 2amigos/yii2-file-upload-widget:~1.0 

А также пробовал с некоторыми поисковыми системами.

http://www.yiiframework.com/wiki/672/install-specific-yii2-vendor-extension-dependency-without-updating-other-packages/

Но это не работает.

Есть ли способ добавить новый пакет/расширение в существующий проект 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

Проверьте пакеты, которые удаляются необходимы в вашем 'composer.json' (перед тем, как запускать 'композитор требует'). Также может быть, что удаленные пакеты являются дополнительными требованиями другого пакета, который был обновлен ('comper require' автоматически запускает« обновление для композитора ») и больше не нужен этому пакету. –

+0

@Peh У меня уже есть большой проект, созданный давно, теперь, когда я пытаюсь добавить новые пакеты, он удаляет некоторые из существующих пакетов. –

+0

ОК, можете ли вы изменить свой вопрос и показать свой 'composer.json' и список удаляемых пакетов? –

ответ

2

Попробуйте

composer --no-update require dmstr/yii2-adminlte-asset:* 
0

Чтобы избежать удаления других расширений просто следующие шаги.

1) "dmstr/yii2-adminlte-asset" : "2.*" 
2) "2amigos/yii2-file-upload-widget": "~1.0" 

к разделу раздела require вашего файла composer.json.

2) php composer.phar update 

выполнить эту команду на Cmd.

0
  1. Ваша проблема в том, что пакеты, которые удаляются НЕ в require, ни в require-dev разделе вашего composer.json. Поэтому я предполагаю, что ранее удаленные пакеты были (под) запрошены любым другим пакетом в вашем composer.json, а с более новой версией этих пакетов это требование было отброшено. Это должно быть нормальное поведение и не должно быть проблемой для вашего проекта!

  2. Как @Bizley уже показали, вы можете добавить требование без обновления старых:

    composer --no-update require dmstr/yii2-adminlte-asset:* 
    
Смежные вопросы