संगीतकार फेंकता है [परावर्तन अपवाद] वर्ग Fxp \ संगीतकार \ AssetPlugin \ Repository \ NpmRepository मौजूद नहीं है


80

मैंने संगीतकार का नवीनतम संस्करण (1.0.0 स्थिर) स्थापित किया और अपनी Yii2 परियोजना में मैंने इसे टाइप किया:

php composer.phar update

यह मुझे यह त्रुटि देता है:

[परावर्तन अपवाद] वर्ग Fxp \ संगीतकार \ AssetPlugin \ Repository \ NpmRepository मौजूद नहीं है

[ErrorException] Fxp \ संगीतकार \ AssetPlugin \ Repository \ AbstractAssetsRepository की घोषणा :: WhatProvides () संगीतकार के साथ संगत होना चाहिए \ Repository \ ComperRetository :: whatProvides (संगीतकार \ DependencyResolver \ पूल $ पूल, $ नाम, $ पुल नाम)

क्या कोई मेरी मदद कर सकता है कि इसे कैसे ठीक किया जाए?

यहाँ मेरा संगीतकार है

{
    "name": "yiisoft/yii2-app-advanced",
    "description": "Yii 2 Advanced Project Template",
    "keywords": ["yii2", "framework", "advanced", "project template"],
    "homepage": "http://www.yiiframework.com/",
    "type": "project",
    "license": "BSD-3-Clause",
    "support": {
        "issues": "https://github.com/yiisoft/yii2/issues?state=open",
        "forum": "http://www.yiiframework.com/forum/",
        "wiki": "http://www.yiiframework.com/wiki/",
        "irc": "irc://irc.freenode.net/yii",
        "source": "https://github.com/yiisoft/yii2"
    },
    "minimum-stability": "stable",
    "require": {
        "php": ">=5.4.0",
        "yiisoft/yii2": ">=2.0.6",
        "yiisoft/yii2-bootstrap": "*",
        "yiisoft/yii2-swiftmailer": "*",
        "kartik-v/yii2-widget-fileinput": "@dev",
        "golonka/bbcodeparser": "^2.2"
    },
    "require-dev": {
        "yiisoft/yii2-codeception": "*",
        "yiisoft/yii2-debug": "*",
        "yiisoft/yii2-gii": "*",
        "yiisoft/yii2-faker": "*"
    },
    "config": {
        "process-timeout": 1800
    },
    "extra": {
        "asset-installer-paths": {
            "npm-asset-library": "vendor/npm",
            "bower-asset-library": "vendor/bower"
        }
    }
}

1
क्या आप हमें अपना दिखा सकते हैं composer.json?
फेडरुन

@ फ़ेडरिको वहाँ है
मार्को मिकुली डेव

जवाबों:


182

लगभग नौ दिन पहले (मार्च, 2016 के अंत में), Composer\Repository\ComposerRepository::whatProvidesएपीआई बदल गया। ( # 2668 ) इसलिए, यदि आपने fxp/composer-asset-pluginविश्व स्तर पर स्थापित किया है, तो आपको इसे अपडेट करना चाहिए। आप ऐसा कर सकते हैं:

php composer.phar global update fxp/composer-asset-plugin --no-plugins

4
Unfortunatelly, यह कमांड उसी त्रुटि के साथ समाप्त होती है। ~/.composerनिर्देशिका को हटाकर और पुनर्स्थापित करके हल किया गया fxp/composer-asset-plugin
ईज़ेज़

4
प्रतिक्रिया के लिए धन्यवाद, मैंने --no-pluginsउत्तर में विकल्प जोड़ा है।
फेडरुन

2
कोई सहायता नहीं की। दूसरी कॉल के बाद मुझे 'कुछ भी स्थापित या अद्यतन नहीं करना है' मिलता है। फिर अपडेट फिर से वही त्रुटियां पैदा करेगा। आगे कोई विचार?
रोजबेक

1
आकर्षण की तरह काम करना। Thx
MrD

1
फिर भी मेरी एक ही समस्या है
मोहम्मद अगायरी


22

मैंने fxpनिर्देशिका से निर्देशिका को हटाकर समस्या का समाधान किया .composer। मेरे सेटअप पर, यह चाल है:

rm -rf ~/.composer/vendor/fxp

अब जब किसी चीज की जरूरत होती है, तो वह अपडेट किए गए प्लगइन को फिर से डाउनलोड कर सकता है।


2
Windows का उपयोग करने वालों के लिए: C: \ Users \ <UserId> \ AppData \ Roaming \ संगीतकार \ विक्रेता
जेसी क्यू

7

अपने वैश्विक composer.jsonको चलाकर संपादित करने का प्रयास करें :

vi ~/.composer/composer.json फिर सुनिश्चित करें कि आपके पास यह रेखा है:

{
    "require": {
        "fxp/composer-asset-plugin": "1.1.*"
    }
}

उपरोक्त उत्तर मेरे काम नहीं आए क्योंकि मेरा संस्करण fxp/composer-asset-pluginजैसा था 1.1-beta04, जब मैंने इसे "1.1.8"अपडेट कमांड को चलाने और चलाने के लिए बदल दिया था:

php /usr/bin/composer global update fxp/composer-asset-plugin --no-plugins

इसने समस्या को ठीक कर दिया। लेकिन अपने वैश्विक संपादन के बिना composer.json, यह मुझे यह त्रुटि दे रहा था:

आपकी आवश्यकताओं को संकुल के समुचित सेट में हल नहीं किया जा सकता है।

समस्या 1 - fxp / कंपोज़र-एसेट-प्लगइन के लिए इंस्टालेशन अनुरोध-बीटा-बीटा 3 -> fxp / कंपोज़र-एसेट-प्लगइन द्वारा संतोषजनक [v1.0.0-beta3]। - fxp / कंपोज़र-एसेट-प्लगइन v1.0.0-beta3 के लिए कंपोज़र-प्लगइन-एपीआइ 1.0.0 -> कोई मेल खाने वाला पैकेज नहीं मिला।

संभावित कारण: - पैकेज के नाम में एक टाइपो - पैकेज आपके न्यूनतम-स्थिरता सेटिंग के अनुसार स्थिर-पर्याप्त संस्करण में उपलब्ध नहीं है, https://getcomposer.org/doc/04-schema.md#minimum-stability के लिए देखें अधिक जानकारी।

आगे की आम समस्याओं के लिए https://getcomposer.org/doc/articles/troublesourcing.md पढ़ें ।


2

Yii2 पर मेरे मामले में परियोजना

$ composer

  [ReflectionException]
  Class Fxp\Composer\AssetPlugin\Repository\NpmRepository does not exist


  [ErrorException]
  Declaration of Fxp\Composer\AssetPlugin\Repository\AbstractAssetsRepository
  ::whatProvides() should be compatible with Composer\Repository\ComposerRepo
  sitory::whatProvides(Composer\DependencyResolver\Pool $pool, $name, $bypass
  Filters = false)

Yii2, फ़ोल्डर में vendor/fxpआपको फ़ोल्डर को बदलने composer-asset-pluginया इसे हटाने की आवश्यकता है।


1

यदि किसी अन्य समाधान ने आपके लिए काम नहीं किया है, तो कृपया विकल्प के रूप में एसेटपैकेजिस्ट की कोशिश करें ।

  1. जोड़े संकुल बोवर-परिसंपत्ति / बूटस्ट्रैप और NPM-परिसंपत्ति / jQuery निम्नलिखित की तरह करने के लिए composer.json:

    "require": {
        "bower-asset/bootstrap": "^3.3",
        "npm-asset/jquery": "^2.2"
    }
    
  2. निम्नलिखित सामग्री के साथ एक रिपॉजिटरी ब्लॉक जोड़ें (यदि आपके पास अभी भी एक नहीं है, यदि आप ऐसा करते हैं, तो बस इसे संलग्न करें):

    "repositories": [
        {
            "type": "composer",
            "url": "https://asset-packagist.org"
        }
    ]
    
  3. भागो composer install(या composer update)

  4. यह देखते हुए कि एसेट-पैकगिस्ट एक अलग डायरेक्टरी में एसेट्स इंस्टॉल करता है, अपने एप्लिकेशन कॉन्फिगरेशन (आमतौर पर web.php) के रूप में निम्न लाइनें जोड़ें:

    $config = [
        'aliases' => [
            '@bower' => '@vendor/bower-asset',
            '@npm'   => '@vendor/npm-asset',
        ],
    ];
    

ये निर्देश समय के साथ बदल सकते हैं। उन्हें रेपो वेबसाइट से कॉपी किया गया है ताकि वेबसाइट पर कुछ होने पर वे समय से पहले चल सकें। मैं रेपो का लेखक नहीं हूं, लेकिन मैं वास्तव में इसमें किए गए प्रयास की सराहना करता हूं। कृपया प्रोजेक्ट के बारे में अधिक जानने के लिए https://asset-packagist.org/site/about देखें


यदि आप संगीतकार के साथ संघर्ष कर रहे हैं, तो आपके पास कुछ उपयोगी आदेश हैं:

composer clear-cache - स्पष्ट संगीतकार संबंधित कैश

composer install -vvv - स्थापना प्रक्रिया संबंधित आउटपुट (डीबग के लिए उपयोगी) दिखाने के लिए पैरामीटर "vvv" जोड़ें

composer global show- यह जांचने के लिए उपयोगी है कि क्या आपके पास पहले से ही fxp / कंपोज़र-एसेट-प्लगइन स्थापित है। मेरे मामले में, यह पहले से ही था, हालांकि यह एक निर्भरता के रूप में नहीं पाया जा रहा था, और मैंने पहले वर्णित समाधान मेरे लिए निर्दोष काम किया - आशा है कि यह आपके लिए भी काम करता है!


-1

आप इसे वैश्विक स्तर पर आवश्यकता के अनुसार स्थायी रूप से तय कर सकते हैं और फिर इसे हर दूसरी परियोजना के लिए हल किया जा सकता है। लेकिन फिर सुनिश्चित करें कि आप अपने सभी टीम के सदस्यों को टिप दें।

सबसे अच्छा यह परियोजना के दायरे में जोड़ने के लिए है और यह हर किसी को इस तरह से हल करता है।

इसलिए:

composer require fxp/composer-asset-plugin

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.