Yii2与composer和fxp/composer-asset-plugin

per*_*nik 5 composer-php yii2

我正在使用Yii2 PHP框架开发一个项目.Yii2使用composerfxp/composer-asset-plugin来处理项目依赖性.

问题是新开发人员进入项目并运行时

git clone <project-repo>
composer install
Run Code Online (Sandbox Code Playgroud)

或者其他开发人员想要安装一个新的扩展程序,composer require <package-name>经常(经常)出现问题,作曲家(或者可能是资产插件,我上面提到过)显示另一个不明确的错误消息(可能仅适用于我).开发人员花费大量时间来查找错误的含义以及如何处理错误.

今天我在Windows机器上克隆了项目,安装了最新的作曲家资产插件版本,运行composer install,等待约20分钟后,得到了这个:

在此输入图像描述

在我的Linux系统上安装了相同的依赖项而没有错误.

问题№1 此错误意味着什么,我该如何解决?

问题№2vendor/目录添加到版本控制是不是很糟糕?(我读过https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md)

问题№3 也许我做错了或者有一个秘密,我不知道,它允许在没有如此巨大的时间损失的情况下管理Yii2中的依赖关系.

非常感谢.

composer.json:

{
    "name": "yiisoft/yii2-app-basic",
    "description": "Yii 2 Basic Project Template",
    "keywords": ["yii2", "framework", "basic", "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"
    },
    "repositories": [
        {
            "type": "git",
            "url":  "https://github.com/ZeroVision/swiftmailer.git"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.4.0",
        "giggsey/libphonenumber-for-php": "~7.0",
        "yiisoft/yii2": "2.0.7",
        "swiftmailer/swiftmailer": "dev-fixStreamBufferTransport",
        "yiisoft/yii2-bootstrap": ">=2.0.3",
        "yiisoft/yii2-swiftmailer": "*",
        "yiisoft/yii2-authclient": "^2.0@dev",
        "2amigos/yii2-date-picker-widget": "~1.0",
        "kartik-v/yii2-widget-timepicker": "*",
        "kartik-v/yii2-widget-rating": "*",
        "2amigos/yii2-gallery-widget": "~1.0",
        "2amigos/yii2-ckeditor-widget": "~1.0",
        "uran1980/yii2-scroll-to-top": "dev-master",
        "yii-cms/yii2-robokassa": "^1.1",
        "onokumus/metismenu": "v2.4.2",
        "rmrevin/yii2-fontawesome": "*",
        "dektrium/yii2-user": "*",
        "p2made/yii2-sb-admin-theme": "1.1.2",
        "p2made/yii2-p2y2-things": "*",
        "p2made/yii2-asset-collection": "*",
        "demi/image": "~1.0",
        "demi/cropper": "~1.0",
        "cyneek/yii2-widget-upload-crop": "dev-master",
        "Nemmo/yii2-attachments": "*",
        "2amigos/yii2-file-input-widget": "*",
        "rkit/yii2-ajaxform-plugin": "^0.0.4",
        "nsept/yii2-birthday-picker": "*",
        "bryglen/yii2-apns-gcm": "1.0.4"
    },
    "require-dev": {
        "yiisoft/yii2-codeception": "*",
        "yiisoft/yii2-debug": "*",
        "yiisoft/yii2-gii": "*",
        "yiisoft/yii2-faker": "*"
    },
    "config": {
        "process-timeout": 1800
    },
    "scripts": {
        "post-create-project-cmd": [
            "yii\\composer\\Installer::postCreateProject"
        ]
    },
    "extra": {
        "yii\\composer\\Installer::postCreateProject": {
            "setPermission": [
                {
                    "runtime": "0777",
                    "web/assets": "0777",
                    "yii": "0755"
                }
            ],
            "generateCookieValidationKey": [
                "config/web.php"
            ]
        },
        "asset-installer-paths": {
            "npm-asset-library": "vendor/npm",
            "bower-asset-library": "vendor/bower"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 13

尝试安装asset-plugin的dev-master

composer global require "fxp/composer-asset-plugin:dev-master"
Run Code Online (Sandbox Code Playgroud)

它解决了我们的很多问题.

  • 不适合我:-( ` PHP 7.1.33 (cli) (build: 2019 年 11 月 22 日 18:28:25) ( NTS ) Composer 版本 2.0.8 2020-12-03 17:20:38 ` (2认同)