0

0

composer怎么手动触发脚本_composer run-script命令【实操】

尼克

尼克

发布时间:2026-02-08 12:56:16

|

997人浏览过

|

来源于php中文网

原创

直接运行 composer run-script 即可,无需“手动触发”;它本质是执行 composer.json 中 "scripts" 字段定义的命令别名,立即执行而非事件驱动。

composer怎么手动触发脚本_composer run-script命令【实操】

直接运行 composer run-script 就行,不用“手动触发”这种说法

Composer 脚本本质就是配置在 composer.json"scripts" 字段里的命令别名。所谓“手动触发”,其实就是你在终端里敲下 composer run-script xxx —— 它不是后台监听或事件驱动的机制,没有“触发时机”一说,就是立即执行。

常见误区是以为要先注册、监听或写钩子;其实只要脚本名存在且命令合法,run-script 就能跑起来。

composer run-script 的实际用法和参数细节

基本格式是:composer run-script [--] [...]。方括号里的 -- 很关键:它用来分隔 Composer 自身参数和脚本实际接收的参数。

  • 不加 --:后面的参数会被 Composer 解析(可能报错或被忽略)
  • --:后面所有内容原样透传给脚本命令,比如 PHP 脚本里的 $argv 或 shell 脚本里的 $@
  • 脚本名区分大小写,且必须完全匹配 composer.json 中定义的键名
  • 如果脚本定义为数组(如 ["@php", "foo.php"]),Composer 会依次执行;定义为字符串则直接交给 shell

示例:composer run-script post-install-cmd -- --force,其中 --force 会传给实际执行的命令(比如某个 PHP CLI 脚本)。

为什么有时提示 “Script not found” 却明明写了?

最常见原因不是拼写错误,而是当前目录不在项目根路径下 —— composer.json 必须存在且可读,Composer 不会向上递归查找。另外注意:

DeepSider
DeepSider

浏览器AI侧边栏对话插件,集成多个AI大模型

下载
  • 脚本名不能含空格或特殊字符(只建议用字母、数字、短横线、下划线)
  • 如果用了 composer global run-script,它查的是全局 composer.json,不是项目里的
  • 某些 IDE 或 CI 环境默认工作目录不是项目根,需显式 cd 进去再执行
  • 脚本定义在 "scripts" 下,不是 "scripts-dev" 或其他自定义字段(Composer 只认 "scripts"

想让脚本支持传参又不想每次敲 --?改用 composer exec(Composer 2.5+)

如果你用的是 Composer 2.5 或更高版本,composer exec 是更自然的选择:它默认把所有后续参数透传,无需 -- 分隔。

例如定义脚本:"test": "php tests/run.php",那么:

  • composer run-script test -- --verbose
  • composer exec test --verbose ✅(更简洁,推荐新项目用)

但要注意:exec 不会自动执行生命周期事件(如 pre-autoload-dump),它只跑你指定的脚本名;而 run-script 在某些上下文中(如安装后)会被自动调用,这点别混淆。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

158

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

431

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

542

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

314

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

79

2025.09.10

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

424

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

213

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1515

2023.10.24

Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 11.3万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号