mcpField
P
package-script-writer

package-script-writer

github.com/umbraco开发27383 次安装6 周前更新
代码仓库

关于 package-script-writer

Package Script Writer 是面向 psw 命令行工具的技能,用于生成和运行 Umbraco CMS 安装脚本,涵盖无人值守安装、选择程序包及重跑历史脚本。

主要功能

  1. 01生成 Umbraco 安装脚本
  2. 02执行无人值守安装
  3. 03添加程序包及版本
  4. 04查看并重跑脚本历史

适用场景

  1. 01使用 SQLite 创建 Umbraco 项目
  2. 02安装 Umbraco 并指定程序包
  3. 03重跑先前生成的脚本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/umbraco/umbraco-cms-backoffice-skills --skill package-script-writer

安装后在 Claude Code 中输入/package-script-writer确认已加载。

详细介绍

Package Script Writer(psw)

使用 psw CLI 工具生成并运行 Umbraco CMS 安装脚本。

工作流

  1. 检查是否已安装 PSW CLI:

    psw --version
    

    如果找不到命令,可能是 .NET 工具路径未添加到 PATH。请尝试:

    • Linux/Mac: export PATH="$PATH:$HOME/.dotnet/tools" && psw --version
    • Windows: %USERPROFILE%\.dotnet\tools\psw --version
  2. 如果尚未安装,请安装:

    dotnet tool install --global PackageScriptWriter.Cli
    
  3. 然后运行 psw 命令(见下文)

非交互式用法(Claude Code)

请使用此命令:

export PATH="$PATH:$HOME/.dotnet/tools"
psw -d -n ProjectName -s ProjectName -u --database-type SQLite --admin-email [email protected] --admin-password SecurePass1234 --auto-run

由于 Umbraco 是长期运行的 Web 服务器,请使用 run_in_background: true 运行此命令。

关键标志:

  • -d — 必需 — 生成完整安装脚本(不使用此标志时,只会生成 dotnet run,导致运行失败)
  • -u — 使用无人值守安装默认值
  • --auto-run — 立即执行脚本
  • 切勿将 -o 与 --auto-run 结合使用(这会截断脚本)

默认凭据: [email protected] / SecurePass1234

使用包

psw -d -n ProjectName -s ProjectName -u --database-type SQLite --admin-email [email protected] --admin-password "SecurePass1234" -p "uSync,Umbraco.Forms" --auto-run

使用指定版本:

psw -d -n ProjectName -s ProjectName -u --database-type SQLite --admin-email [email protected] --admin-password "SecurePass1234" -p "uSync|18.0.0,Umbraco.Forms|18.0.0" --auto-run

重要

请勿在密码或用户名中使用可转义字符

主要选项

标志描述
-d, --default必需 — 生成完整安装脚本
-n, --project-name项目名称
-s, --solution解决方案名称
-u, --unattended-defaults使用无人值守安装默认值
--database-typeSQLite、LocalDb、SQLServer、SQLAzure、SQLCE
--admin-email无人值守安装的管理员电子邮件
--admin-password无人值守安装的管理员密码
--auto-run执行生成的脚本
-p, --packages以逗号分隔的包(例如:"uSync,Umbraco.Forms")
-t, --template-packageUmbraco 模板,可选版本
-da, --delivery-api启用 Content Delivery API

等待 Umbraco 启动

在后台运行命令后,轮询检查是否已就绪:

# Check the output for the port number (e.g., "Now listening on: https://localhost:44356")
# Then poll until ready:
for i in {1..30}; do
  if nc -z localhost 44356 2>/dev/null; then
    echo "Umbraco is ready!"
    break
  fi
  sleep 2
done

其他命令

psw versions              # Show Umbraco versions with support status
psw history list          # Show recent scripts
psw history rerun 1       # Re-run script #1
psw --clear-cache         # Clear cached API responses

评论

支持 Markdown