我试图编写一个composer.json文件,以便连续运行几个命令行命令,就像这样的例子:
"scripts": {
"test": [
"@createDir"
],
"createDir": "mkdir testing"
}
当我在终端中使用 composer.phar update
运行 composer 文件时,并没有创建目录。有没有人能指导我正确的方向,告诉我该怎么做或者我错在哪里了?
我试图编写一个composer.json文件,以便连续运行几个命令行命令,就像这样的例子:
"scripts": {
"test": [
"@createDir"
],
"createDir": "mkdir testing"
}
当我在终端中使用 composer.phar update
运行 composer 文件时,并没有创建目录。有没有人能指导我正确的方向,告诉我该怎么做或者我错在哪里了?
默认情况下,Composer不会在install
或update
结束时运行所有脚本。要实现这一点,您的脚本需要位于其中一个Command Event键下,例如post-update-cmd
。
您仍然可以在这些块中引用其他脚本,例如:
"scripts": {
"post-install-cmd": [
"@test"
],
"test": [
"touch foo"
]
}
要运行单独的脚本,您可以使用run-script
命令:
composer run-script test
composer test
来实现。 - J.Hpour如果你想运行一个永久运行命令,这会对你有所帮助
在 composer.json 文件中:
"scripts": {
"start-lumen" : [
"php -S localhost:8000 -t public"
]
}
添加 --timeout=0 以无限制运行
composer run-script start-lumen --timeout=0
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.6.4",
"laravel/framework": "5.3.*",
"acacha/admin-lte-template-laravel": "dev-master",
"yajra/laravel-datatables-oracle": "^6.21",
"barryvdh/laravel-dompdf": "^0.7.0",
"spatie/laravel-backup": "^3.0.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~5.0",
"symfony/css-selector": "3.1.*",
"symfony/dom-crawler": "3.1.*"
},
"autoload": {
"classmap": [
"database",
"App/Helpers/MyCustomHelper"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"
]
},
"config": {
"preferred-install": "dist"
}
}
编辑:也许你可以尝试使用composer dump-autoload