【问题标题】:Cannot update yii2 via composer bower-asset/jquery could not be found无法通过 composer bower-asset/jquery 更新 yii2 找不到
【发布时间】:2014-11-10 23:59:50
【问题描述】:

我正在通过 composer 更新我的 yii2,然后又恢复到旧的 beta 版本。

这是我的作曲家的错误:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package bower-asset/jquery could not be found in any version, there may be a typ
o in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setti
ng
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

尝试在 packagist 中搜索 bower-asset/jquery,但未找到。

感谢您的帮助:)

【问题讨论】:

  • 他们正在重构资产管理部分。几个小时前发生了变化。 github.com/yiisoft/yii2-app-advanced/commit/…
  • 该死的。现在不是试验和让新手放弃 Yii 的时候。如果他们的第一次安装不能“正常工作”,许多人可能会尝试其他框架。

标签: composer-php yii2


【解决方案1】:

终于修好了,只是按照 UPGRADE.md 文档中的步骤操作

如果你使用 Composer 升级 Yii,你应该先运行以下命令(一次性)安装 composer-asset-plugin:

composer global require "fxp/composer-asset-plugin:^1.2.0"

(有关最新版本,请参阅http://www.yiiframework.com/doc-2.0/guide-start-installation.html#installing-from-composer。)

您可能还需要将以下代码添加到项目的composer.json 文件中:

"extra": {
    "asset-installer-paths": {
        "npm-asset-library": "vendor/npm",
        "bower-asset-library": "vendor/bower"
    }
}

希望这会有所帮助:)

【讨论】:

  • 我不得不运行 php composer.phar global require "fxp/composer-asset-plugin:1.0.0-beta1" 而不是 php composer.phar global require "fxp/composer-asset-plugin: 1.0.*@dev"
  • 谢谢你帮了我很多:)
  • 我发现如果我在执行此操作之前已经运行了composer update,我必须删除vendor/ 文件夹,否则错误会持续存在。
  • 截至 2017 年 6 月 23 日... 我必须执行以下操作 sudo composer self-updatecomposer global require "fxp/composer-asset-plugin:^1.3.1" 我不必将“额外”部分添加到 composer.json。
  • 注意:Bower 前段时间更改了他们的注册表 URL,现在已经宣布到 deprecate the old URL。旧注册表将于 2017 年 10 月 31 日停用。为了不影响您的工作,请确保将您的作曲家资产插件更新到最新版本:composer global require "fxp/composer-asset-plugin:^1.4.2"
【解决方案2】:

对我来说有助于删除文件夹 ~/.composer 并执行命令:

php composer.phar global require "fxp/composer-asset-plugin:1.*"

然后再次运行

php composer.phar update

【讨论】:

  • 或者获取最新的稳定版本:php composer.phar global require "fxp/composer-asset-plugin"
  • 如果你没有 composer.phar 这应该也可以工作:composer global require "fxp/composer-asset-plugin:~1.1"
【解决方案3】:

找到了更清洁的解决方案。只需在您的 composer.json 文件中添加以下存储库

"repositories": [
 {
  "type": "composer",
  "url": "https://asset-packagist.org"
 }
]

观看魔术

【讨论】:

  • 它解决了我的 bower-asset/amcharts-stock 作曲家更新错误....!非常感谢..!!!!!!
  • 这不再有效。 asset-packagist.org 看起来像是一个废弃的项目。这些软件包通常不可用,因此您必须手动访问该网站并“更新”每一个。
【解决方案4】:

如果您不想使用fxp/composer-asset-plugin,那么您只需按照 Yii2 documentation 的这些简单说明进行操作即可。

使用asset-packagist 存储库

这种方式将满足大多数需要 NPM 或 Bower 包的项目的要求。

注意:从 2.0.13 开始,基本和高级应用程序模板都是 预配置为默认使用asset-packagist,所以你可以跳过这个 部分。

在项目的 composer.json 中,添加以下行:

"repositories": [
    {
        "type": "composer",
        "url": "https://asset-packagist.org"
    }
]

在您的应用程序配置中调整 @npm 和 @bower 别名:

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

访问asset-packagist.org 了解它的工作原理。

【讨论】:

    【解决方案5】:

    如果您不需要更新 bower-asset,您可以在 composer.json 文件中的 yiisoft/yii2. 之前要求 yidas/yii2-composer-bower-skip

    "require": {
        "php": ">=5.4.0",
        "yidas/yii2-composer-bower-skip": "~2.0.0",
        "yiisoft/yii2": "~2.0.5",
        "yiisoft/yii2-bootstrap": "~2.0.0"
    }
    

    之后,您可以顺利更新 Composer,无需 bower-asset。

    https://github.com/yidas/yii2-composer-bower-skip

    【讨论】:

    • @Alex 很高兴听到这个消息 :-)
    【解决方案6】:

    如 YII2 存储库文档中所述:https://asset-packagist.org/site/about 我们可以通过在配置中的这些文件夹上添加别名来解决这个问题。 它看起来像这样:

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

    完美运行!

    【讨论】:

      【解决方案7】:

      简单干净的解决方案:

      在 composer.json 中,只需将 bower-asset/jquery 行替换为: "yidas/yii2-bower-asset":"*"


      我建议我们还将 bower-asset/datatables 添加到 yidas/yii2-bower-asset


      我对添加 fxp/composer-asset-plugin 的可接受解决方案的问题是该插件显着降低了作曲家系统的速度,影响无处不在,并不总是可跨操作系统和环境移植, PHP7.2 存在与方法名称不一致有关的错误。所以,我更喜欢我的开发速度更快、运行速度更快、更本地化和更兼容的解决方案。

      【讨论】:

        【解决方案8】:

        我尝试了所有提到的步骤,例如在main.php中添加以下内容

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

        composer.json

        "repositories": [
         {
          "type": "composer",
          "url": "https://asset-packagist.org"
         }
        ]
        

        执行“composer install/update”仍然没有安装 yii2-bootstrap 提供的 bower 包。

        我发现,我使用 composer.phar 2x 来设置它。我将 composer.phar 降级为 1x 并且不需要fxp/composer-asset-plugin 插件,一切正常。

        【讨论】:

          【解决方案9】:

          以防万一有人升级 Yii 2.0.41 - 2.0.43, 应该注意的是,您需要安装“外部”凉亭资产。

          运行以下命令

          composer require yidas/yii2-bower-asset
          

          然后,需要更新配置中的别名(取决于您的结构),以便 Yii 处理新的 bower-asset 文件夹。

          // here is important part
          'aliases' => [
              '@bower' => '@vendor/yidas/yii2-bower-asset/bower',
          ],
          
          //below is just another config just ignore. example purpose don't copy
          'components' => [
              'db' => [
          

          然后,重新加载您的 Yii 应用。应该没问题。

          -额外-

          这里是 composer.json 的示例,供任何需要更新到 2.0.43 的人使用

          {
          "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": "dev",
          "require": {
              "php": ">=5.4.0",
              "yiisoft/yii2": "2.0.43",
              "yiisoft/yii2-bootstrap": "*",
              "yiisoft/yii2-swiftmailer": "~2.0@dev",
              "yiisoft/yii2-redis": "~2.0.0",
              "yiisoft/yii2-elasticsearch": "~2.0.0",
              "bryglen/yii2-apns-gcm": "1.0.5",
              "snhccm/baidu-push": "dev-master",
              "google/cloud": "dev-master",
              "minishlink/web-push": "6.0.7",
              "understeam/yii2-fcm": "~0.1",
              "yidas/yii2-bower-asset": "2.0.13"
          },
          "require-dev": {
              "codeception/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"
              }
          }
          

          }

          【讨论】:

            猜你喜欢
            • 2020-05-02
            • 2016-12-05
            • 2018-06-14
            • 2016-04-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-04-06
            • 1970-01-01
            相关资源
            最近更新 更多