在与当前目录不同的目录中运行作曲家

Posted

技术标签:

【中文标题】在与当前目录不同的目录中运行作曲家【英文标题】:Running composer in a different directory than current 【发布时间】:2016-01-09 20:52:35 【问题描述】:

不知道有没有问过这个问题,因为搜索的结果主要是移动库安装目录。

我有一个全局安装的 composer 命令。有没有办法在与当前目录不同的目录中运行,例如,composer install,即指定我想在其中运行命令的目录?

例如在/home/someuser 中,我想获得与在/home/someuser/myproject 中运行composer install 相同的结果。当然,一种方法是简单地更改当前目录,运行 composer 然后返回。

【问题讨论】:

【参考方案1】:

试试composer install -h。在那里你会找到一个选项--working-dir(或-d)。这就是你要找的东西。

然后运行:

composer install --working-dir=/home/someuser/myproject

您可以在composer docs找到更多信息。

根据您的操作系统,= 可能需要删除:

composer install --working-dir /home/someuser/myproject

【讨论】:

-d=/home/someuser/myproject 实际上给我抛出了一个错误。当前版本的作曲家似乎接受-d /home/user/myproject/ AFAIK 它取决于操作系统(Windows、Linux、OS X)。感谢您的评论,我已经更新了答案以使操作系统差异更加清晰。 使用 = 使我的构建失败了一百万次,感谢您添加此详细信息 :) 它无法在 linux 上运行。您需要在其中创建带有大括号的 composer.json 文件:。然后一切正常。【参考方案2】:

除了来自 Tomáš Votruba 的上述回答之外,我还必须在 OSX 上附加 = 字符。所以完整的命令是:

composer install -d=/home/someuser/myproject

我在 SO 上的第一篇文章因此无法简单地将其添加为评论。

【讨论】:

感谢 Eric,我已经更新了答案以确保它适用于所有人。我已经在 Linux 上进行了测试,并且也可以正常工作。【参考方案3】:

这对我有用,Ubuntu 18.04 上的 php 7.3

安装

composer install --working-dir=/your_composer_dir

更新

作曲家更新 --working-dir=/your_composer_dir

【讨论】:

【参考方案4】:

运行:

cd /home/mysites/google.com

然后运行:

composer require facebook/graph-sdk

以上步骤将打开名为 (google.com) 的目录并在那里安装 facebook Graph SDK。

【讨论】:

我认为不需要更改目录。另外,如果要求运行composer install,为什么要引入一些要安装的包?

以上是关于在与当前目录不同的目录中运行作曲家的主要内容,如果未能解决你的问题,请参考以下文章

作曲家从不同目录自动加载子命名空间

在与当前用户不同的用户下运行 ASP .NET Web 应用程序

Sbt 没有从当前目录加载项目

如果 gulp 安装在与 gulpfile.js 不同的文件夹中(node_modules),你如何运行 gulp

Java获取程序运行的当前工作目录

相对于当前文件夹运行 exe [重复]