无法使用Composer需要包

时间:2015-01-28 03:27:22

标签: git github composer-php yii2

我想在我的项目中要求这个包: lucianocosta/jquery.mtz.monthpicker

所以我在 composer.json 文件中添加了它:

{
      "name": "yiisoft/yii2-app-advanced",
      "description": "Yii 2 Advanced Application Template",
      "keywords": ["yii2", "framework", "advanced", "application 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": "*",
                "yiisoft/yii2-bootstrap": "*",
                "yiisoft/yii2-swiftmailer": "*",
                "yiisoft/yii2-gii": "*",
                "yiisoft/yii2-faker": "*",
                "google/apiclient": "1.0.*@beta",
                "asimlqt/php-google-spreadsheet-client": "2.2.*",
                "phpoffice/phpexcel": "*",
                "lucianocosta/jquery.mtz.monthpicker": "dev-master"
      },
      "require-dev": {
                "yiisoft/yii2-codeception": "*",
                "yiisoft/yii2-debug": "*"
      },
      "config": {
                "process-timeout": 1800
      },
      "extra": {
                "asset-installer-paths": {
                          "npm-asset-library": "vendor/npm",
                          "bower-asset-library": "vendor/bower"
                }
      }

}

然后我运行composer update命令但是收到了这条消息:

您的要求无法解析为可安装的软件包。

问题1      - 在任何版本中找不到请求的包 lucianocosta / jquery.mtz.monthpicker ,包名中可能有拼写错误。

潜在原因:

  • 包名称中的拼写错误
  • 根据您的最小稳定性设置
  • ,包装不具备足够稳定的版本

如果不改变任何最小稳定性设置,我可以成功地要求此包吗?

2 个答案:

答案 0 :(得分:2)

您需要的软件包不是Composer软件包,因为Composer是PHP软件包管理器,您要使用的软件包仅用于前端。

前端包与Bower保持一致,但是Yii建议您install composer-assets-plugin which can handle Bower packages through composer.json,然后您不需要将它们保存在单独的bower.json中。

然后你需要找到正确的Bower包名。您可以通过网站http://bower.io/search/?q=monthpicker执行此操作,或者如果您安装了Bower,则可以从命令行搜索此包,如下所示:

bower search jquery.mtz.monthpicker

Search results:
    monthpicker git://github.com/lucianocosta/jquery.mtz.monthpicker.git

如果您有自己的软件包名称(在本例中为monthpicker),则只需将其添加到前缀为require的{​​{1}}的{​​{1}}部分中(在此案例composer.json

以下是bower-asset/部分的固定版本:

bower-asset/monthpicker

答案 1 :(得分:1)

问题是请求的包不是作曲家包(它没有composer.json),并且不能通过packagist.org存储库获得。这意味着该软件包的作者没有为作曲家提供支持。

  

存储库是包源。它是包/版本的列表。 Composer将查看您的所有存储库以查找项目所需的包。

     

默认情况下,仅在Composer中注册Packagist存储库。您可以通过在composer.json中声明它们来为项目添加更多存储库。

但是可以在composer.json中注册新的存储库。以下代码注册了lucianocosta/jquery.mtz.monthpicker的存储库,并使用RobLoach/component-installer将它们从/vendor文件夹中删除。如果您不需要,只需删除extra部分中的requirepackage部分。

"repositories": [
     {
        "type": "package",
        "package": {
            "name": "lucianocosta/jquery.mtz.monthpicker",
            "version": "1.0",
            "type": "component",
            "dist": {
                "url": "https://github.com/lucianocosta/jquery.mtz.monthpicker/archive/master.zip",
                "type": "zip"
            },
            "extra": {
                "component": {
                    "scripts": [
                        "jquery.mtz.monthpicker.js"
                    ]
                }
            },
            "require": {
                "robloach/component-installer": "*"
            }
        }
    }
],
"require": {
    "lucianocosta/jquery.mtz.monthpicker": "1.*"
},