当前位置: 首页 > 知识库问答 >
问题:

Laravel未安装Laravel发行软件包的require-dev软件包

公西毅
2023-03-14

我已经创建了一个Laravel发行软件包,我的所有网站使用的所有Laravel软件包。我还创建了一个使用这个发行包的自定义Laravel网站。

不幸的是,当我在第二个composer文件上运行composer install--dev时,它不会安装来自laravel-distro composer包的require-dev包,例如phpunit/phpunit

Laravel-distro composer配置:

$ cat laravel-distro/composer.json
{
    "name": "dennis00/laravel-distro",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^7.1.3",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.8.*",
        "laravel/tinker": "^1.0",
        "laravel/installer": "^2.0.1"
    },
    "require-dev": {
        "beyondcode/laravel-dump-server": "^1.0",
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^2.0",
        "phpunit/phpunit": "^7.5"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "vendor-dir": "vendor",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

Laravel-编写器配置示例:

$ cat laravel-example/composer.json
{
    "name": "dennis00/laravel-example",
    "description": "Example of Laravel Distro",
    "type": "project",
    "license": "GPL-2.0+",
    "minimum-stability": "dev",
    "repositories": [
        {
            "type": "composer",
            "url": "https://packages.drupal.org/8"
        }
    ],
    "autoload": {
        "classmap": [
            "scripts/composer/ScriptHandler.php"
        ]
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "require": {
        "dennis00/laravel-distro": "dev-master@dev",
        "laravel/horizon": "^4.0@dev"
    }
}

您可以看到这里缺少require-dev包。

root@f506ece6f4ea:/var/www/html# ls vendor
autoload.php  cakephp dennis00  doctrine   egulias  fideloper   jakub-onderka  laravel  monolog  nette  ocramius  paragonie  phpstan  psy        ramsey     symfony   vlucas
bin       composer  dnoegel   dragonmantank  erusev   guzzlehttp  jean85       league   nesbot   nikic  opis  phpoption  psr      ralouphie  swiftmailer  tijsverkoyen

root@f506ece6f4ea:/var/www/html# ls vendor_backup/
autoload.php  bin dnoegel   dragonmantank  erusev     filp  hamcrest       laravel  mockery  myclabs  nikic       opis   phar-io  phpoption  phpunit  psy     sebastian  symfony  tijsverkoyen  webmozart
beyondcode    composer  doctrine  egulias  fideloper  fzaninotto  jakub-onderka  league monolog  nesbot   nunomaduro  paragonie  phpdocumentor  phpspec    psr      ramsey  swiftmailer  theseer  vlucas
root@f506ece6f4ea:/var/www/html#

共有1个答案

熊博远
2023-03-14

不会的,这是故意的。

由于这些包位于第一个基本package.json文件的required-dev部分,因此只有在该包上运行composer install时才会安装这些包。

当您将该包拉入另一个项目时,composer将仅从该包中安装那些不在required-dev内的依赖项。

这是因为require-dev仅用于开发该包,不应要求在其他内容中使用该包。如果您需要在使用基本包时安装这些包,则必须将它们放在required中,而不是放在required-dev中。

 类似资料:
  • 我试图在Symfony2上安装FOSUserBundle。 尝试在终端中运行此命令时 作曲家更新朋友软件交响乐/用户包 我提出了这个错误: 用包信息加载作曲家存储库更新依赖项(包括要求开发)您的需求无法解析为一组可安装的包。 问题1-symfony/icu v1.2.0需要lib-icu 我读到了关于INTL扩展没有安装正确,所以我按照这些说明,重新启动MAMP,问题仍然存在! 我也使用phpin

  • 说明我正在laravel软件包中使用livewire,该软件包将插入laravel项目。我成功地将Livewire集成到我的软件包中。我获取的错误是,当我单击绑定到组件方法的按钮时,由于不活动,此页面已过期。我在我的基本文件中添加了csrf令牌,如 复制的精确步骤 在laravel项目中创建一个包。只渲染一个组件 精简、复制可复制的代码段依赖项 浏览器:[Chrome,] 包路由文件

  • 我试过文件 在虚拟环境中使用python 3.7~/git/ UPDATE奇怪的是,直接从命令提示符运行pip3安装硒起作用了。

  • 我很困惑。我已经做了十几次这个过程,从来没有遇到过这个问题。 我为乌班图安装了最新版本的R 我输入R,没有任何问题,给我最新的版本,我可以加载原生包。 但当我尝试安装新的软件包时,它们会下载,但我什么也没得到。例如,如果我安装ggplot2: 我已经彻底清除了很多次文件,但运气都不好。 我以 root 用户身份登录。 我觉得我遗漏了什么明显的东西?我不知道——我在Ubuntu、Mac、Window

  • 我正在尝试为Java使用谷歌协议缓冲区(我是一个关于Java的新手,只是在尝试)。 首先,我使用OSX,并使用命令安装了协议缓冲区。 命令创建了目录,我可以在该目录中找到文件。 我编写了简单的测试Java代码,只是导入,它抱怨找不到包。 因此,我只是将jar文件,并将其目录添加为类路径,并且编译得很好。

  • 什么是红帽订阅管理 红帽订阅订阅管理提供了向服务器/计算机授权产品订阅的工具,让管理员能够获取软件包的更新,跟踪系统所用支持合同和订阅的相关信息。PackageKit 和 yum 等标准工具可以用来获取红帽提供的软件包和更新等内容。可以通过红帽订阅管理工具执行下列四项基本任务: 注册 - 注册系统,将该系统与某一红帽帐户关联。这可以让订阅管理器唯一地清查该系统。不再使用某一系统时,可以取消注册。

  • 本文向大家介绍R从GitHub安装软件包,包括了R从GitHub安装软件包的使用技巧和注意事项,需要的朋友参考一下 示例 要直接从GitHub安装软件包,请使用devtools软件包: 要从ggplot2github安装: 上面的命令将安装ggplot2与master分支相对应的版本。要从存储库的另一个分支进行安装,请使用ref参数提供分支的名称。例如,以下命令将安装软件包的dev_general

  • 问题内容: 使用命令安装rJava时,出现以下错误: 我已经安装了Java JDK,并java -version返回以下内容: 当谷歌搜索错误时,我看到其他人也遇到了同样的问题,但是除了我已经完成的“安装整个JDK,而不仅仅是JRE”之外,没有找到解决方案。 我读过的另一件事是运行sudo R CMD javareconf,它运行愉快,没有错误。 任何想法我的问题是什么? [[编辑]] 自从我遇到