0

0

如何使用Composer run-script --list查看当前项目定义的所有脚本?

尼克

尼克

发布时间:2026-01-12 13:45:51

|

609人浏览过

|

来源于php中文网

原创

执行 composer run-script --list 无输出,是因为 composer.json 中缺少或拼写错误 scripts 字段(如误为 script),该命令仅识别顶层 scripts 对象,忽略 scripts-descriptions 等其他字段。

如何使用composer run-script --list查看当前项目定义的所有脚本?

执行 composer run-script --list 为什么没输出?

多数情况下,运行该命令后终端一片空白,不是脚本不存在,而是 Composer 默认只显示 "scripts" 中顶层定义的脚本(即不嵌套在 "scripts-descriptions" 或其他自定义键下的内容),且要求 composer.json 中必须存在 "scripts" 字段——哪怕它是空对象也会触发列表输出。如果字段缺失或拼写错误(如写成 "script"),命令就静默退出。

  • 确认 composer.json 包含 "scripts": {} 或至少一个键值对,例如:
    "scripts": {
      "dev": "php -S localhost:8000 -t public"
    }
  • 不要依赖 "scripts-descriptions":这个字段仅用于 composer list 显示说明,run-script --list 完全忽略它
  • 注意权限和路径:确保在项目根目录下执行,且当前用户对 composer.json 有读取权限

composer run-script --list 输出的格式与含义

当命令正常工作时,输出是纯文本两列:左侧为脚本名(key),右侧为对应命令(value),中间用两个空格分隔。它不会显示别名、钩子(如 pre-autoload-dump)或事件监听脚本,只列出显式定义在 "scripts" 下的条目。

  • 脚本名支持中划线(test:unit)、冒号分隔(phpcs:fix),但不能含空格或未转义的引号
  • 若 value 是数组(多条命令),--list 只显示第一个元素(Composer v2.5+ 开始支持数组脚本,但 --list 仍不展开)
  • 输出不含颜色或样式,无法通过参数开启高亮

替代方案:快速查看所有可运行脚本(含事件钩子)

想看到更完整的脚本视图(包括 post-install-cmd 这类生命周期事件),composer run-script --list 不够用。直接读取 JSON 更可靠:

MakeSong
MakeSong

AI音乐生成,生成高质量音乐,仅需30秒的时间

下载
  • jq 查看全部:
    jq '.scripts' composer.json
  • 过滤出非空脚本(排除注释或空字符串):
    jq 'with_entries(select(.value != null and .value != ""))' composer.json
  • 人工检查常见钩子:打开 composer.json,搜索 "pre-""post-""auto-" 等前缀,它们虽不列在 --list 中,却会在对应事件触发时自动执行

为什么有些脚本在 --list 里出现,但 composer run-script xxx 报错?

列表只是“声明存在”,不代表能立即执行。常见断裂点:

  • 命令本身不存在:比如写了 "cs": "phpcs",但系统未安装 phpcs CLI,或不在 $PATH
  • 路径上下文错误:脚本中用了相对路径(如 "test": "php tests/run.php"),但执行时工作目录不是项目根,导致文件找不到
  • 环境变量缺失:某些脚本依赖 $_ENV['APP_ENV'].env 文件,而 run-script 默认不加载它们(除非脚本自己调用 dotenv
  • PHP 版本不兼容:脚本调用的函数在当前 PHP 版本中被弃用或移除(如 create_function()

真正要验证脚本是否可用,得单独运行一次并观察 stderr 输出,而不是只信 --list 的存在性。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2409

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1554

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1450

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

951

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1414

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1234

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1445

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1305

2023.11.13

Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

6

2026.01.12

热门下载

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

精品课程

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

共137课时 | 8.5万人学习

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

共6课时 | 6.9万人学习

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

共13课时 | 0.8万人学习

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

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