You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置根目录composer.json,在install时执行子目录npm脚本?

Laravel Nova自定义工具自动构建资源配置方案

问题根源

你之前的命令写法不符合shell语法规则:cd nova-components/TeamDashboard npm run production 中cd命令与后续npm命令未正确分隔,必须用&&连接,确保目录切换成功后再执行npm指令。另外还需确认路径准确性及跨系统兼容性问题。

正确配置步骤

1. 验证目录路径

先确认自定义工具的实际目录为 nova-components/TeamDashboard(注意大小写与空格:如果工具名是“Team Dashboard”,目录名可能带空格,路径需写成nova-components/Team\ Dashboard或用引号包裹)。

2. 修改根目录composer.json的post-install-cmd

根据你的运行环境选择对应写法:

类Unix系统(Linux/macOS/WSL)

"post-install-cmd": [
    // 保留原有其他命令
    "if [ -d \"nova-components/TeamDashboard\" ]; then cd nova-components/TeamDashboard && npm run production; fi",
    "@php artisan package:discover --ansi",
    "@php artisan vendor:publish --force --tag=laravel-assets --ansi"
]

Windows CMD环境

"post-install-cmd": [
    // 保留原有其他命令
    "if exist nova-components\\TeamDashboard (cd nova-components\\TeamDashboard && npm run production)",
    "@php artisan package:discover --ansi",
    "@php artisan vendor:publish --force --tag=laravel-assets --ansi"
]

跨平台兼容写法(推荐)

如果项目需要同时支持多系统,可借助bash执行兼容命令:

"post-install-cmd": [
    // 保留原有其他命令
    "bash -c 'if [ -d \"nova-components/TeamDashboard\" ]; then cd nova-components/TeamDashboard && npm run production; fi'",
    "@php artisan package:discover --ansi",
    "@php artisan vendor:publish --force --tag=laravel-assets --ansi"
]

3. 额外检查项

  • 确保npm已全局安装,或工具目录下通过npm install完成了依赖安装。
  • 手动执行cd nova-components/TeamDashboard && npm run production,验证命令本身可正常运行,排除工具配置问题。

内容的提问来源于stack exchange,提问作者Kasun Sampath Weligamage

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:54:16