作曲家忽略包要求的文件夹
Composer ignore folders on package require
我想使用带有 composer require 的包,但我不希望它加载所有文件夹。我知道我应该在 github 上分叉此包并进行更改,但我想在需要时轻松更新包,而 copy/pasting 文件夹不是最佳选择。
所以,我在想,是否有可能以某种方式在 composer.json
文件上的我的分叉存储库中,告诉我不想从中加载 Eloquent
和 Console
文件夹illuminate/database
包?
首先,无法从 Composer 中排除这些文件夹。
而且我永远不会理解为什么有些人仍在寻找磁盘的最后 2 个字节 space。 Disk space 现在真的很便宜。
例如,您永远不会从包中删除一些您不使用的单一功能,或者您呢?
在我使用的几乎所有 package/framework 中,有些东西我不使用,但我永远不会想到删除它们,除非我是 NASA 人员将我的代码发送到 Pluto 或其他东西.
我的建议: 保留这些文件,除非真的非常需要删除它们。
如果您需要删除它们,您可以编写一个脚本并 运行 它在 post-package-update
事件中。
以下是您在 composer.json
中定义脚本事件的方法:
{
"scripts": {
"post-update-cmd": "MyVendor\MyClass::postUpdate",
"post-package-install": [
"MyVendor\MyClass::postPackageInstall"
],
"post-install-cmd": [
"MyVendor\MyClass::warmCache",
"phpunit -c app/"
],
"post-create-project-cmd" : [
"php -r \"copy('config/local-example.php', 'config/local.php');\""
]
}
}
以及 MyVendor\MyClass
class 的示例:
<?php
namespace MyVendor;
use Composer\Script\Event;
use Composer\Installer\PackageEvent;
class MyClass
{
public static function postUpdate(Event $event)
{
$composer = $event->getComposer();
// do stuff
}
public static function postPackageInstall(PackageEvent $event)
{
$installedPackage = $event->getOperation()->getPackage();
// do stuff
}
public static function warmCache(Event $event)
{
// make cache toasty
}
}
有关如何使用脚本的更多信息,请参阅 official composer documentation - scripts。
我想使用带有 composer require 的包,但我不希望它加载所有文件夹。我知道我应该在 github 上分叉此包并进行更改,但我想在需要时轻松更新包,而 copy/pasting 文件夹不是最佳选择。
所以,我在想,是否有可能以某种方式在 composer.json
文件上的我的分叉存储库中,告诉我不想从中加载 Eloquent
和 Console
文件夹illuminate/database
包?
首先,无法从 Composer 中排除这些文件夹。
而且我永远不会理解为什么有些人仍在寻找磁盘的最后 2 个字节 space。 Disk space 现在真的很便宜。 例如,您永远不会从包中删除一些您不使用的单一功能,或者您呢?
在我使用的几乎所有 package/framework 中,有些东西我不使用,但我永远不会想到删除它们,除非我是 NASA 人员将我的代码发送到 Pluto 或其他东西.
我的建议: 保留这些文件,除非真的非常需要删除它们。
如果您需要删除它们,您可以编写一个脚本并 运行 它在 post-package-update
事件中。
以下是您在 composer.json
中定义脚本事件的方法:
{
"scripts": {
"post-update-cmd": "MyVendor\MyClass::postUpdate",
"post-package-install": [
"MyVendor\MyClass::postPackageInstall"
],
"post-install-cmd": [
"MyVendor\MyClass::warmCache",
"phpunit -c app/"
],
"post-create-project-cmd" : [
"php -r \"copy('config/local-example.php', 'config/local.php');\""
]
}
}
以及 MyVendor\MyClass
class 的示例:
<?php
namespace MyVendor;
use Composer\Script\Event;
use Composer\Installer\PackageEvent;
class MyClass
{
public static function postUpdate(Event $event)
{
$composer = $event->getComposer();
// do stuff
}
public static function postPackageInstall(PackageEvent $event)
{
$installedPackage = $event->getOperation()->getPackage();
// do stuff
}
public static function warmCache(Event $event)
{
// make cache toasty
}
}
有关如何使用脚本的更多信息,请参阅 official composer documentation - scripts。