uip 函数
“uip 函数”的语法和选项,可构建、提供和发布 UiPath JS/TS 和 Python 函数 — setup、new、init、service、run、pack、push、publish、runtime-install。
uip function用于构建、提供和发布UiPath Functions— 在 UiPath 平台上打包并运行的小型 JS/TS 或 Python 处理程序。uip function 是规范组名称; uip functions(复数)仍可用作向后兼容的别名。
概念
- 这是一个语言调度程序,而不是原生工具。除
setup之外的每个动词都是精简转发器:CLI 会检测项目的语言(从当前目录中的uipath.jsonpackage.json、 或pyproject.toml,或--language-l中的new)检测到,然后将原始参数路由到流程内的 JS/TS CLI ()@uipath/coded-functions-js-cli或生成的 Python CLI。因此,任何转发的动词的uip function <verb> --help都会显示基础 CLI 自身的帮助,而不是uip创作的帮助 — 下面的选项表提取自转发包装器自己的标志提示和示例,是此存储库工具在下游 CLI 将接管。 - 语言解决方案对于
init和new很重要。init仅限 Python — 若为 JS/TS,则用new --empty替代框架。new自动检测;当检测不确定时,系统默认为记录警告的 TypeScript,除非您传递--language js|ts|py/python。 setup将自动运行。这是一个隐藏命令(--help中没有),用于在new转发到 JS/TS CLI 之前验证 Node.js ≥20 — 您通常不会自己调用它,但在满足以下条件的情况下,uip function setup --force会重新运行检查缓存的验证会过时(例如,在重新安装节点后)。publish与push目标不同:publish将打包的.nupkg上传到 Orchestrator 订阅源;push会直接将项目同步到 Studio Web 项目。两者都接受--url/--org/--token(或匹配的UIPATH_URL/UIPATH_ORGANIZATION_NAME/UIPATH_ACCESS_TOKEN环境变量)。- 解决方案自动注册。成功的 Python
init会自动将项目注册到父级.uipx解决方案(如果存在)(与agent/case/flow初始解决方案相同)— 传递--skip-solution-registration以选择退出。在基础 Python CLI 自己的 init 输出之后,这将通过单独的FunctionsInitSolutionRegistration成功信封进行报告。
大纲
uip function new [name] [--name <name>] [-l, --language ts|js|py] [--empty]
uip function init [--language py] [--skip-solution-registration]
uip function serve [--port <port>] [--runtime node|deno]
uip function run <name> [--port <port>] [--input <json>]
uip function pack [--nolock]
uip function push [--url <url>] [--project-id <id>] [--org <org>] [--token <token>]
uip function publish [--url <url>] [--org <org>] [--token <token>] [--feed-id <id>]
uip function runtime-install [--path <folder>]
uip function new [name] [--name <name>] [-l, --language ts|js|py] [--empty]
uip function init [--language py] [--skip-solution-registration]
uip function serve [--port <port>] [--runtime node|deno]
uip function run <name> [--port <port>] [--input <json>]
uip function pack [--nolock]
uip function push [--url <url>] [--project-id <id>] [--org <org>] [--token <token>]
uip function publish [--url <url>] [--org <org>] [--token <token>] [--feed-id <id>]
uip function runtime-install [--path <folder>]
新的 uip 函数
搭建一个新的 Functions 项目,默认情况下包含 Hello World 函数。
参数
| 名称 | 必填 | 用途 |
|---|---|---|
[name] | 否 | 项目名称/目录。默认 my-functions。也可以作为 --name 传递。 |
选项
| 长 | 值 | 描述 |
|---|---|---|
--name <name> | 字符串 | 位置参数的替代方法。 |
-l, --language <lang> | ts (默认)| js | py/python | 项目语言。 |
--empty | 标记 | 跳过 json 函数 — 空项目。仅限 JS/TS。 |
示例
uip function new my-fn --language ts
uip function new my-fn --language py
uip function new my-fn --language ts
uip function new my-fn --language py
数据形状(--输出 json)
{ "Code": "NewComplete", "Data": { "Message": "Project created at ./my-fn" } }
{ "Code": "NewComplete", "Data": { "Message": "Project created at ./my-fn" } }
uip 函数初始化
仅限 Python:发现入口点并(重新)生成 entry-points.json/bindings.json/project.uiproj。对于 Python 项目,必须在 pack/push 之前运行。对于 JS/TS,请改用 new --empty — init 失败,并显示明确的“仅限 Python” JS/TS 项目或未检测到的语言出错。
选项
| 长 | 值 | 描述 |
|---|---|---|
--language py | 标志/值 | 当检测结果模糊时,强制执行 Python 语言解析。 |
--skip-solution-registration | 标记 | 不要在父级 .uipx 解决方案中自动注册项目。 |
示例
uip function init
uip function init
数据形状(--输出 json)
{ "Code": "InitComplete", "Data": { "Message": "Project initialized." } }
{ "Code": "InitComplete", "Data": { "Message": "Project initialized." } }
随后报告解决方案注册第二次成功:
{
"Code": "FunctionsInitSolutionRegistration",
"Data": { "SolutionRegistration": { "Status": "Registered", "...": "..." } }
}
{
"Code": "FunctionsInitSolutionRegistration",
"Data": { "SolutionRegistration": { "Status": "Registered", "...": "..." } }
}
当不存在父解决方案时,SolutionRegistration.Status 为 "NotInSolution",当 "OptedOut" 被传递时,--skip-solution-registration 为 — 始终存在,从未省略。
UIP 函数服务
使用热重载启动本地 Function Server。仅限 JS/TS。
选项
| 长 | 值 | 描述 |
|---|---|---|
--port <port> | 整数 | 要侦听的端口。默认 7070。 |
--runtime <runtime> | node (默认) | deno | 要在其中提供服务的 runtime。 |
示例
uip function serve
uip function serve
数据形状(--输出 json)
{ "Code": "ServeStarted", "Data": { "Message": "Listening on http://localhost:7070" } }
{ "Code": "ServeStarted", "Data": { "Message": "Listening on http://localhost:7070" } }
uip 函数 run
对本地 serve 端点调用函数。仅限 JS/TS。
参数
| 名称 | 必填 | 用途 |
|---|---|---|
<name> | 是 | 要调用的函数名称。 |
选项
| 长 | 值 | 描述 |
|---|---|---|
--port <port> | 整数 | 本地服务器所在的端口。默认 7070。 |
--input <json> | JSON | 输入有效负载。默认 {}。 |
示例
uip function run hello --input '{"x":1}'
uip function run hello --input '{"x":1}'
数据形状(--输出 json)
{ "Code": "RunComplete", "Data": { "result": 2 } }
{ "Code": "RunComplete", "Data": { "result": 2 } }
Data 是函数自己的返回值,其形状完全由您编写的函数决定,未由 CLI 进行规范化。
uip 函数包
将项目打包到 .nupkg 中以进行部署。
选项
| 长 | 值 | 描述 |
|---|---|---|
--nolock | 标记 | 从包中排除锁定文件。仅限 JS/TS。 |
示例
uip function pack
uip function pack
数据形状(--输出 json)
{ "Code": "PackComplete", "Data": { "Message": "Package created: my-fn.0.0.1.nupkg" } }
{ "Code": "PackComplete", "Data": { "Message": "Package created: my-fn.0.0.1.nupkg" } }
uip 函数 push
将项目同步到 Studio Web — 生成入口点并上传更改的文件。
选项
| 长 | 值 | 必填 | 描述 |
|---|---|---|---|
--url <url> | url | 否 | UiPath 平台 URL。回退到 UIPATH_URL。 |
--project-id <id> | GUID | 有条件地 | “Studio Web”项目 ID。必填项,但可能来自 UIPATH_PROJECT_ID 而非标志。 |
--org <org> | 字符串 | 否 | 组织名称。回退到 UIPATH_ORGANIZATION_NAME。 |
--token <token> | 字符串 | 否 | 访问令牌。回退到 UIPATH_ACCESS_TOKEN。 |
示例
uip function push --project-id 1f2a3b4c-0000-0000-0000-000000000001
uip function push --project-id 1f2a3b4c-0000-0000-0000-000000000001
数据形状(--输出 json)
{ "Code": "PushComplete", "Data": { "Message": "Push complete." } }
{ "Code": "PushComplete", "Data": { "Message": "Push complete." } }
UIP 函数“发布”
将最新的 .nupkg 上传到 Orchestrator 文件夹。如果没有 --feed-id,将以交互方式提示输入订阅源(ESC 可取消)— CI 使用 --feed-id 跳过选取器。
选项
| 长 | 值 | 描述 |
|---|---|---|
--url <url> | url | UiPath 平台 URL。回退到 UIPATH_URL。 |
--org <org> | 字符串 | 组织名称。回退到 UIPATH_ORGANIZATION_NAME。 |
--token <token> | 字符串 | 访问令牌。回退到 UIPATH_ACCESS_TOKEN。 |
--feed-id <id> | GUID | 发布目标订阅源 — 跳过交互式选取器。 |
示例
# Interactive feed picker
uip function publish
# CI use — skip the picker
uip function publish --feed-id 9b2c1d4e-0000-0000-0000-000000000001
# Interactive feed picker
uip function publish
# CI use — skip the picker
uip function publish --feed-id 9b2c1d4e-0000-0000-0000-000000000001
数据形状(--输出 json)
{ "Code": "PublishComplete", "Data": { "Message": "Package published." } }
{ "Code": "PublishComplete", "Data": { "Message": "Package published." } }
uip 函数 runtime-install
使用自己的 package.json 创建一个运行程序文件夹,并将运行时依赖项安装到其中。仅限 JS/TS。
选项
| 长 | 值 | 描述 |
|---|---|---|
--path <folder> | 路径 | 要在其中创建和安装 runtime 依赖项的目标文件夹。 |
示例
uip function runtime-install --path .uipath/runner
uip function runtime-install --path .uipath/runner
数据形状(--输出 json)
{ "Code": "RuntimeInstallComplete", "Data": { "Message": "Runtime installed at .uipath/runner" } }
{ "Code": "RuntimeInstallComplete", "Data": { "Message": "Runtime installed at .uipath/runner" } }
错误行为
init针对 JS/TS 项目或未检测到的语言:Failure、Message: "'init' is not applicable to JS/TS projects."(或"'init' is Python-only."),使用Instructions命名new --empty/--language。- 无法检测到的语言且没有
new的--language:默认使用 TypeScript,记录警告而非失败。 - 未检测到任何其他动词的 Functions 项目:
Failure、Message: "No Functions project detected in this directory.",使用Instructions从包含uipath.json/package.json/pyproject.toml的目录运行,或显式传递--language。 - Node.js 缺少 v20 或版本低于 v20(JS/TS 路径):
ConfigError指明所需版本及安装该版本的链接 — 此检查在new转发到 JS/TS CLI 之前自动运行。
另请参阅
- 工具(插件)
uip codedapp— 编码应用程序的类似构建/打包/发布/推送/拉取生命周期。- 全局选项
- 退出代码