From 4107ed5e47ab35fee180882d04daff87eedb3efe Mon Sep 17 00:00:00 2001 From: task-bot <106601941+task-bot@users.noreply.github.com> Date: Sun, 7 May 2023 00:26:55 +0000 Subject: [PATCH] deploy: 45dd77ad6d12d6f52bb2fd6b6c6afec8fe3f6485 --- zh-Hans/404.html | 4 ++-- zh-Hans/api/index.html | 6 +++--- zh-Hans/assets/js/0f29a59d.7bc7088c.js | 1 + zh-Hans/assets/js/0f29a59d.ea44a842.js | 1 - zh-Hans/assets/js/89e58501.418fa946.js | 1 - zh-Hans/assets/js/89e58501.baac19ce.js | 1 + zh-Hans/assets/js/8faba80b.70950a98.js | 1 - zh-Hans/assets/js/8faba80b.d60bcae5.js | 1 + zh-Hans/assets/js/dd4fb81f.21e0cfa3.js | 1 + zh-Hans/assets/js/dd4fb81f.bba25cef.js | 1 - ...{runtime~main.0d56d8f9.js => runtime~main.a86bcaa2.js} | 2 +- zh-Hans/changelog/index.html | 4 ++-- zh-Hans/community/index.html | 6 +++--- zh-Hans/contributing/index.html | 8 ++++---- zh-Hans/donate/index.html | 4 ++-- zh-Hans/faq/index.html | 4 ++-- zh-Hans/index.html | 4 ++-- zh-Hans/installation/index.html | 4 ++-- zh-Hans/integrations/index.html | 6 +++--- zh-Hans/releasing/index.html | 4 ++-- zh-Hans/search/index.html | 4 ++-- zh-Hans/styleguide/index.html | 4 ++-- zh-Hans/taskfile-versions/index.html | 4 ++-- zh-Hans/translate/index.html | 4 ++-- zh-Hans/usage/index.html | 4 ++-- 25 files changed, 42 insertions(+), 42 deletions(-) create mode 100644 zh-Hans/assets/js/0f29a59d.7bc7088c.js delete mode 100644 zh-Hans/assets/js/0f29a59d.ea44a842.js delete mode 100644 zh-Hans/assets/js/89e58501.418fa946.js create mode 100644 zh-Hans/assets/js/89e58501.baac19ce.js delete mode 100644 zh-Hans/assets/js/8faba80b.70950a98.js create mode 100644 zh-Hans/assets/js/8faba80b.d60bcae5.js create mode 100644 zh-Hans/assets/js/dd4fb81f.21e0cfa3.js delete mode 100644 zh-Hans/assets/js/dd4fb81f.bba25cef.js rename zh-Hans/assets/js/{runtime~main.0d56d8f9.js => runtime~main.a86bcaa2.js} (97%) diff --git a/zh-Hans/404.html b/zh-Hans/404.html index 907d6142..1f23873f 100644 --- a/zh-Hans/404.html +++ b/zh-Hans/404.html @@ -10,13 +10,13 @@ - +
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

- + \ No newline at end of file diff --git a/zh-Hans/api/index.html b/zh-Hans/api/index.html index 978aadaa..adbd9e27 100644 --- a/zh-Hans/api/index.html +++ b/zh-Hans/api/index.html @@ -10,13 +10,13 @@ - +
-
跳到主要内容

API 参考

命令行

该命令的语法如下:

task [--flags] [tasks...] [-- CLI_ARGS...]
提示

如果 -- 给出,所有剩余参数将被分配给一个特殊的 CLI_ARGS 变量

缩写标志类型默认描述
-c--colorbooltrue彩色输出。 默认开启。 设置为 false 或使用 NO_COLOR=1 禁用。
-C--concurrencyint0限制并发运行的任务数。 零意味着无限。
-d--dirstring工作目录设置执行目录。
-n--dryboolfalse按运行顺序编译和打印任务,而不执行它们。
-x--exit-codeboolfalse传递任务命令的退出代码。
-f--forceboolfalse即使任务是最新的也强制执行。
-g--globalboolfalse$HOME/Taskfile.{yml,yaml} 运行全局任务文件。
-h--helpboolfalse显示任务使用情况。
-i--initboolfalse在当前目录创建一个新的 Taskfile.yml。
-I--intervalstring5s使用 --watch 设置不同的观察间隔,默认为 5 秒。 这个字符串应该是一个有效的 Go Duration
-l--listboolfalse列出当前文件的全部任务及对应描述。
-a--list-allboolfalse列出无论有没有描述的所有任务。
--sortstringdefault在列出时更改 task 的顺序。
--jsonboolfalse查看 JSON 输出
-o--outputstring在 Taskfile 中设置默认值或 intervealed设置输出样式:[interleaved/group/prefixed]
--output-group-beginstring在任务组输出前打印的消息模板。
--output-group-endstring在任务组输出后打印的消息模板。
--output-group-error-onlyboolfalse在退出码为 0 时忽略命令输出。
-p--parallelboolfalse并行执行命令行上提供的任务。
-s--silentboolfalse禁用回显。
--statusboolfalse如果任何给定任务不是最新的,则以非 0 退出码退出。
--summaryboolfalse显示有关任务的摘要。
-t--taskfilestringTaskfile.ymlTaskfile.yaml
-v--verboseboolfalse启用详细模式。
--versionboolfalse显示 Task 版本。
-w--watchboolfalse启用给定任务的观察器。

退出码

Task 有时会以特定的退出代码退出。 这些代码分为三组,范围如下:

  • 一般错误 (0-99)
  • Taskfile 错误 (100-199)
  • Task 错误 (200-299)

可以在下面找到退出代码及其描述的完整列表:

代码描述
0成功
1出现未知错误
100找不到 Taskfile
101尝试初始化一个 Taskfile 时已经存在
102Taskfile 无效或无法解析
200找不到指定的 task
201在 task 中执行命令时出错
202用户试图调用内部 task
203有多个具有相同名称或别名的 task
204一个 task 被调用了太多次

这些代码也可以在存储库的 errors/errors.go 中找到。

信息

当使用 -x/--exit-code 标志运行 Task 时,任何失败命令的退出代码都将传递给用户。

JSON 输出

--json 标志与 --list--list-all 标志结合使用时,将输出具有以下结构的 JSON 对象:

{
"tasks": [
{
"name": "",
"desc": "",
"summary": "",
"up_to_date": false,
"location": {
"line": 54,
"column": 3,
"taskfile": "/path/to/Taskfile.yml"
}
}
// ...
],
"location": "/path/to/Taskfile.yml"
}

特殊变量

模板系统上有一些可用的特殊变量:

变量描述
CLI_ARGS当通过 CLI 调用 Task 时,传递包含在 -- 之后的所有额外参数。
TASK当前任务的名称。
ROOT_DIR根 Taskfile 的绝对路径。
TASKFILE_DIR包含 Taskfile 的绝对路径
USER_WORKING_DIR调用 task 的目录的绝对路径。
CHECKSUMsources 中列出的文件的 checksum。 仅在 status 参数中可用,并且如果方法设置为 checksum
TIMESTAMPsources 中列出的文件的最大时间戳的日期对象。 仅在 status 参数中可用,并且如果方法设置为 timestamp
TASK_VERSIONTask 的当前版本。

环境变量

可以覆盖某些环境变量以调整 Task 行为。

环境变量默认描述
TASK_TEMP_DIR.task临时目录的位置。 可以相对于项目比如 tmp/task 或绝对如 /tmp/.task~/.task
TASK_COLOR_RESET0用于白色的颜色。
TASK_COLOR_BLUE34用于蓝色的颜色。
TASK_COLOR_GREEN32用于绿色的颜色。
TASK_COLOR_CYAN36用于青色的颜色。
TASK_COLOR_YELLOW33用于黄色的颜色。
TASK_COLOR_MAGENTA35用于洋红色的颜色。
TASK_COLOR_RED31用于红色的颜色。
FORCE_COLOR强制使用颜色输出。

Taskfile Schema

属性类型默认描述
versionstringTaskfile 的版本。 当前版本是 3
outputstringinterleaved输出模式。 可用选项: interleavedgroupprefixed
methodstringchecksumTaskfile 中的默认方法。 可以在任务基础上覆盖。 可用选项:checksumtimestampnone
includesmap[string]Include要包含的其他 Taskfile。
varsmap[string]Variable一组全局变量。
envmap[string]Variable一组全局环境变量。
tasksmap[string]Task一组任务定义。
silentboolfalse此任务文件的默认“silent”选项。 如果为 false,则可以在任务的基础上用 true 覆盖。
dotenv[]string要解析的 .env 文件路径列表。
runstringalwaysTaskfile 中默认的 'run' 选项。 可用选项: alwaysoncewhen_changed
intervalstring5s设置 --watch 模式下的观察时间,默认 5 秒。 这个字符串应该是一个有效的 Go Duration
set[]string内置 set 指定选项。
shopt[]string内置 shopt 指定选项。

Include

属性类型默认描述
taskfilestring要包含的 Taskfile 或目录的路径。 如果是目录,Task 将在该目录中查找名为 Taskfile.ymlTaskfile.yaml 的文件。 如果是相对路径,则相对于包含 Taskfile 的目录进行解析。
dirstringTaskfile 文件父目录运行时包含的任务的工作目录。
optionalboolfalse设置为 true 时, 文件不存在也不会报错
internalboolfalse停止在命令行上调用包含的任务文件中的任何任务。 当与 --list 一起使用时,这些命令也将从输出中省略。
aliases[]string包含的 Taskfile 的命名空间的替代名称。
varsmap[string]Variable一组应用于包含的 Taskfile 的变量。
信息

像下面这样只赋值一个字符串,和把这个值设置到 taskfile 属性是一样的。

includes:
foo: ./path

Variable

属性类型默认描述
itselfstring将设置为变量的静态值。
shstring一个 shell 命令。 输出 (STDOUT) 将分配给变量。
信息

静态和动态变量有不同的语法,如下所示:

vars:
STATIC: static
DYNAMIC:
sh: echo "dynamic"

Task

属性类型默认描述
cmds[]Command要执行的 shell 命令列表。
deps[]Dependency此任务的依赖项列表。 此处定义的任务将在此任务之前并行运行。
labelstring运行任务时覆盖输出中的任务名称。 支持变量。
descstringTask 的简短描述。 这在调用 task --list 时显示。
summarystring任务的较长描述。 这在调用 task --summary [task] 时显示。
aliases[]string可以调用任务的别名列表。
sources[]string运行此任务之前要检查的源列表。 与 checksumtimestamp 相关。 可以是文件路径或星号。
generates[]string此任务要生成的文件列表。 与 timestamp 方法相关。 可以是文件路径或星号。
status[]string用于检查此 task 是否应运行的命令列表。 否则跳过该任务。 这个方法会覆盖 methodsourcesgenerates
preconditions[]Precondition用于检查此任务是否应运行的命令列表。 如果不满足条件,任务将出错。
dirstring此 task 应运行的目录。 默认为当前工作目录。
varsmap[string]Variable可在 task 中使用的一组变量。
envmap[string]Variable一组可用于 shell 命令的环境变量。
dotenv[]string要解析的 .env 文件路径列表。
silentboolfalse从输出中隐藏任务名称和命令。 命令的输出仍将重定向到 STDOUTSTDERR。 当与 --list 标志结合使用时,任务描述将被隐藏。
interactiveboolfalse告诉任务该命令是交互式的。
internalboolfalse停止在命令行上调用任务。 当与 --list 一起使用时,它也会从输出中省略。
methodstringchecksum定义用于检查任务是最新的方法。 timestamp 将比较源的时间戳并生成文件。 checksum 将检查 checksum(您可能想忽略 .gitignore 文件中的 .task 文件夹)。 none 跳过任何验证并始终运行任务。
prefixstring定义一个字符串作为并行运行 task 输出的前缀。 仅在输出模式是 prefixed 时使用。
ignore_errorboolfalse如果执行命令时发生错误,则继续执行。
runstringTaskfile 中全局声明的值或 always指定如果多次调用该任务是否应再次运行。 可用选项:alwaysoncewhen_changed
platforms[]string所有平台指定应在哪些平台上运行任务。 允许使用 有效的 GOOS 和 GOARCH 值。 否则将跳过任务。
set[]string内置 set 指定选项。
shopt[]string内置 shopt 指定选项。
信息

这些替代语法可用。 他们会将给定值设置为 cmds,其他所有内容都将设置为其默认值:

tasks:
foo: echo "foo"

foobar:
- echo "foo"
- echo "bar"

baz:
cmd: echo "baz"

Command

属性类型默认描述
cmdstring要执行的 shell 命令
silentboolfalse跳过此命令的一些输出。 请注意,命令的 STDOUT 和 STDERR 仍将被重定向。
taskstring执行另一个 task,而不执行命令。 不能与 cmd 同时设置。
varsmap[string]Variable要传递给引用任务的可选附加变量。 仅在设置 task 而不是 cmd 时相关。
ignore_errorboolfalse执行命令的时候忽略错误,继续执行
deferstringcmd 的替代方法,但安排命令在此任务结束时执行,而不是立即执行。 不能与 cmd 一同使用。
platforms[]string所有平台指定应在哪些平台上运行该命令。 允许使用 有效的 GOOS 和 GOARCH 值。 否则将跳过命令。
set[]string内置 set 指定选项。
shopt[]string内置 shopt 指定选项。
信息

如果以字符串形式给出,该值将分配给 cmd

tasks:
foo:
cmds:
- echo "foo"
- echo "bar"

Dependency

属性类型默认描述
taskstring要作为依赖项执行的任务。
varsmap[string]Variable要传递给此任务的可选附加变量。
提示

如果你不想设置额外的变量,将依赖关系声明为一个字符串列表就足够了(它们将被分配给 task)。

tasks:
foo:
deps: [foo, bar]

Precondition

属性类型默认描述
shstring要执行的命令。 如果返回非零退出码,任务将在不执行其命令的情况下出错。
msgstring如果不满足先决条件,则打印可选消息。
提示

如果你不想设置不同的消息,你可以像这样声明一个前提条件,值将被分配给 sh

tasks:
foo:
precondition: test -f Taskfile.yml
- +
跳到主要内容

API 参考

命令行

该命令的语法如下:

task [--flags] [tasks...] [-- CLI_ARGS...]
提示

如果 -- 给出,所有剩余参数将被分配给一个特殊的 CLI_ARGS 变量

缩写标志类型默认描述
-c--colorbooltrue彩色输出。 默认开启。 设置为 false 或使用 NO_COLOR=1 禁用。
-C--concurrencyint0限制并发运行的任务数。 零意味着无限。
-d--dirstring工作目录设置执行目录。
-n--dryboolfalse按运行顺序编译和打印任务,而不执行它们。
-x--exit-codeboolfalse传递任务命令的退出代码。
-f--forceboolfalse即使任务是最新的也强制执行。
-g--globalboolfalse$HOME/Taskfile.{yml,yaml} 运行全局任务文件。
-h--helpboolfalse显示任务使用情况。
-i--initboolfalse在当前目录创建一个新的 Taskfile.yml。
-I--intervalstring5s使用 --watch 设置不同的观察间隔,默认为 5 秒。 这个字符串应该是一个有效的 Go Duration
-l--listboolfalse列出当前文件的全部任务及对应描述。
-a--list-allboolfalse列出无论有没有描述的所有任务。
--sortstringdefault在列出时更改 task 的顺序。
--jsonboolfalse查看 JSON 输出
-o--outputstring在 Taskfile 中设置默认值或 intervealed设置输出样式:[interleaved/group/prefixed]
--output-group-beginstring在任务组输出前打印的消息模板。
--output-group-endstring在任务组输出后打印的消息模板。
--output-group-error-onlyboolfalse在退出码为 0 时忽略命令输出。
-p--parallelboolfalse并行执行命令行上提供的任务。
-s--silentboolfalse禁用回显。
--statusboolfalse如果任何给定任务不是最新的,则以非 0 退出码退出。
--summaryboolfalse显示有关任务的摘要。
-t--taskfilestringTaskfile.ymlTaskfile.yaml
-v--verboseboolfalse启用详细模式。
--versionboolfalse显示 Task 版本。
-w--watchboolfalse启用给定任务的观察器。

退出码

Task 有时会以特定的退出代码退出。 这些代码分为三组,范围如下:

  • 一般错误 (0-99)
  • Taskfile 错误 (100-199)
  • Task 错误 (200-299)

可以在下面找到退出代码及其描述的完整列表:

代码描述
0成功
1出现未知错误
100找不到 Taskfile
101尝试初始化一个 Taskfile 时已经存在
102Taskfile 无效或无法解析
200找不到指定的 task
201在 task 中执行命令时出错
202用户试图调用内部 task
203有多个具有相同名称或别名的 task
204一个 task 被调用了太多次

这些代码也可以在存储库的 errors/errors.go 中找到。

信息

When Task is run with the -x/--exit-code flag, the exit code of any failed commands will be passed through to the user instead.

JSON 输出

--json 标志与 --list--list-all 标志结合使用时,将输出具有以下结构的 JSON 对象:

{
"tasks": [
{
"name": "",
"desc": "",
"summary": "",
"up_to_date": false,
"location": {
"line": 54,
"column": 3,
"taskfile": "/path/to/Taskfile.yml"
}
}
// ...
],
"location": "/path/to/Taskfile.yml"
}

特殊变量

模板系统上有一些可用的特殊变量:

变量描述
CLI_ARGS当通过 CLI 调用 Task 时,传递包含在 -- 之后的所有额外参数。
TASK当前任务的名称。
ROOT_DIR根 Taskfile 的绝对路径。
TASKFILE_DIR包含 Taskfile 的绝对路径
USER_WORKING_DIR调用 task 的目录的绝对路径。
CHECKSUMsources 中列出的文件的 checksum。 仅在 status 参数中可用,并且如果方法设置为 checksum
TIMESTAMPsources 中列出的文件的最大时间戳的日期对象。 仅在 status 参数中可用,并且如果方法设置为 timestamp
TASK_VERSIONTask 的当前版本。

环境变量

可以覆盖某些环境变量以调整 Task 行为。

环境变量默认描述
TASK_TEMP_DIR.task临时目录的位置。 可以相对于项目比如 tmp/task 或绝对如 /tmp/.task~/.task
TASK_COLOR_RESET0用于白色的颜色。
TASK_COLOR_BLUE34用于蓝色的颜色。
TASK_COLOR_GREEN32用于绿色的颜色。
TASK_COLOR_CYAN36用于青色的颜色。
TASK_COLOR_YELLOW33用于黄色的颜色。
TASK_COLOR_MAGENTA35用于洋红色的颜色。
TASK_COLOR_RED31用于红色的颜色。
FORCE_COLOR强制使用颜色输出。

Taskfile Schema

属性类型默认描述
versionstringTaskfile 的版本。 当前版本是 3
outputstringinterleaved输出模式。 可用选项: interleavedgroupprefixed
methodstringchecksumTaskfile 中的默认方法。 可以在任务基础上覆盖。 可用选项:checksumtimestampnone
includesmap[string]Include要包含的其他 Taskfile。
varsmap[string]Variable一组全局变量。
envmap[string]Variable一组全局环境变量。
tasksmap[string]Task一组任务定义。
silentboolfalse此任务文件的默认“silent”选项。 如果为 false,则可以在任务的基础上用 true 覆盖。
dotenv[]string要解析的 .env 文件路径列表。
runstringalwaysTaskfile 中默认的 'run' 选项。 可用选项: alwaysoncewhen_changed
intervalstring5s设置 --watch 模式下的观察时间,默认 5 秒。 这个字符串应该是一个有效的 Go Duration
set[]string内置 set 指定选项。
shopt[]string内置 shopt 指定选项。

Include

属性类型默认描述
taskfilestring要包含的 Taskfile 或目录的路径。 如果是目录,Task 将在该目录中查找名为 Taskfile.ymlTaskfile.yaml 的文件。 如果是相对路径,则相对于包含 Taskfile 的目录进行解析。
dirstringTaskfile 文件父目录运行时包含的任务的工作目录。
optionalboolfalse设置为 true 时, 文件不存在也不会报错
internalboolfalse停止在命令行上调用包含的任务文件中的任何任务。 当与 --list 一起使用时,这些命令也将从输出中省略。
aliases[]string包含的 Taskfile 的命名空间的替代名称。
varsmap[string]Variable一组应用于包含的 Taskfile 的变量。
信息

像下面这样只赋值一个字符串,和把这个值设置到 taskfile 属性是一样的。

includes:
foo: ./path

Variable

属性类型默认描述
itselfstring将设置为变量的静态值。
shstring一个 shell 命令。 输出 (STDOUT) 将分配给变量。
信息

静态和动态变量有不同的语法,如下所示:

vars:
STATIC: static
DYNAMIC:
sh: echo "dynamic"

Task

属性类型默认描述
cmds[]Command要执行的 shell 命令列表。
deps[]Dependency此任务的依赖项列表。 此处定义的任务将在此任务之前并行运行。
labelstring运行任务时覆盖输出中的任务名称。 支持变量。
descstringTask 的简短描述。 这在调用 task --list 时显示。
summarystring任务的较长描述。 这在调用 task --summary [task] 时显示。
aliases[]string可以调用任务的别名列表。
sources[]string运行此任务之前要检查的源列表。 与 checksumtimestamp 相关。 可以是文件路径或星号。
generates[]string此任务要生成的文件列表。 与 timestamp 方法相关。 可以是文件路径或星号。
status[]string用于检查此 task 是否应运行的命令列表。 否则跳过该任务。 这个方法会覆盖 methodsourcesgenerates
preconditions[]Precondition用于检查此任务是否应运行的命令列表。 如果不满足条件,任务将出错。
dirstring此 task 应运行的目录。 默认为当前工作目录。
varsmap[string]Variable可在 task 中使用的一组变量。
envmap[string]Variable一组可用于 shell 命令的环境变量。
dotenv[]string要解析的 .env 文件路径列表。
silentboolfalse从输出中隐藏任务名称和命令。 命令的输出仍将重定向到 STDOUTSTDERR。 当与 --list 标志结合使用时,任务描述将被隐藏。
interactiveboolfalse告诉任务该命令是交互式的。
internalboolfalse停止在命令行上调用任务。 当与 --list 一起使用时,它也会从输出中省略。
methodstringchecksum定义用于检查任务是最新的方法。 timestamp 将比较源的时间戳并生成文件。 checksum 将检查 checksum(您可能想忽略 .gitignore 文件中的 .task 文件夹)。 none 跳过任何验证并始终运行任务。
prefixstring定义一个字符串作为并行运行 task 输出的前缀。 仅在输出模式是 prefixed 时使用。
ignore_errorboolfalse如果执行命令时发生错误,则继续执行。
runstringTaskfile 中全局声明的值或 always指定如果多次调用该任务是否应再次运行。 可用选项:alwaysoncewhen_changed
platforms[]string所有平台指定应在哪些平台上运行任务。 允许使用 有效的 GOOS 和 GOARCH 值。 否则将跳过任务。
set[]string内置 set 指定选项。
shopt[]string内置 shopt 指定选项。
信息

这些替代语法可用。 他们会将给定值设置为 cmds,其他所有内容都将设置为其默认值:

tasks:
foo: echo "foo"

foobar:
- echo "foo"
- echo "bar"

baz:
cmd: echo "baz"

Command

属性类型默认描述
cmdstring要执行的 shell 命令
silentboolfalse跳过此命令的一些输出。 请注意,命令的 STDOUT 和 STDERR 仍将被重定向。
taskstring执行另一个 task,而不执行命令。 不能与 cmd 同时设置。
varsmap[string]Variable要传递给引用任务的可选附加变量。 仅在设置 task 而不是 cmd 时相关。
ignore_errorboolfalse执行命令的时候忽略错误,继续执行
deferstringcmd 的替代方法,但安排命令在此任务结束时执行,而不是立即执行。 不能与 cmd 一同使用。
platforms[]string所有平台指定应在哪些平台上运行该命令。 允许使用 有效的 GOOS 和 GOARCH 值。 否则将跳过命令。
set[]string内置 set 指定选项。
shopt[]string内置 shopt 指定选项。
信息

如果以字符串形式给出,该值将分配给 cmd

tasks:
foo:
cmds:
- echo "foo"
- echo "bar"

Dependency

属性类型默认描述
taskstring要作为依赖项执行的任务。
varsmap[string]Variable要传递给此任务的可选附加变量。
提示

如果你不想设置额外的变量,将依赖关系声明为一个字符串列表就足够了(它们将被分配给 task)。

tasks:
foo:
deps: [foo, bar]

Precondition

属性类型默认描述
shstring要执行的命令。 如果返回非零退出码,任务将在不执行其命令的情况下出错。
msgstring如果不满足先决条件,则打印可选消息。
提示

如果你不想设置不同的消息,你可以像这样声明一个前提条件,值将被分配给 sh

tasks:
foo:
precondition: test -f Taskfile.yml
+ \ No newline at end of file diff --git a/zh-Hans/assets/js/0f29a59d.7bc7088c.js b/zh-Hans/assets/js/0f29a59d.7bc7088c.js new file mode 100644 index 00000000..0801adab --- /dev/null +++ b/zh-Hans/assets/js/0f29a59d.7bc7088c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[825],{3905:function(t,e,n){n.d(e,{Zo:function(){return c},kt:function(){return h}});var r=n(7294);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var s=r.createContext({}),l=function(t){var e=r.useContext(s),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},c=function(t){var e=l(t.components);return r.createElement(s.Provider,{value:e},t.children)},p="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},f=r.forwardRef((function(t,e){var n=t.components,a=t.mdxType,o=t.originalType,s=t.parentName,c=u(t,["components","mdxType","originalType","parentName"]),p=l(n),f=a,h=p["".concat(s,".").concat(f)]||p[f]||m[f]||o;return n?r.createElement(h,i(i({ref:e},c),{},{components:n})):r.createElement(h,i({ref:e},c))}));function h(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var o=n.length,i=new Array(o);i[0]=f;var u={};for(var s in e)hasOwnProperty.call(e,s)&&(u[s]=e[s]);u.originalType=t,u[p]="string"==typeof t?t:a,i[1]=u;for(var l=2;l=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}var s=n.createContext({}),l=function(t){var e=n.useContext(s),r=e;return t&&(r="function"==typeof t?t(e):i(i({},e),t)),r},p=function(t){var e=l(t.components);return n.createElement(s.Provider,{value:e},t.children)},c="mdxType",m={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},f=n.forwardRef((function(t,e){var r=t.components,a=t.mdxType,o=t.originalType,s=t.parentName,p=u(t,["components","mdxType","originalType","parentName"]),c=l(r),f=a,h=c["".concat(s,".").concat(f)]||c[f]||m[f]||o;return r?n.createElement(h,i(i({ref:e},p),{},{components:r})):n.createElement(h,i({ref:e},p))}));function h(t,e){var r=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var o=r.length,i=new Array(o);i[0]=f;var u={};for(var s in e)hasOwnProperty.call(e,s)&&(u[s]=e[s]);u.originalType=t,u[c]="string"==typeof t?t:a,i[1]=u;for(var l=2;l=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=u(a),k=r,f=c["".concat(s,".").concat(k)]||c[k]||m[k]||i;return a?n.createElement(f,l(l({ref:t},p),{},{components:a})):n.createElement(f,l({ref:t},p))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=k;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[c]="string"==typeof e?e:r,l[1]=o;for(var u=2;u=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),u=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},p=function(e){var t=u(e.components);return n.createElement(o.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(a),k=r,f=c["".concat(o,".").concat(k)]||c[k]||m[k]||i;return a?n.createElement(f,l(l({ref:t},p),{},{components:a})):n.createElement(f,l({ref:t},p))}));function f(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,l=new Array(i);l[0]=k;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s[c]="string"==typeof e?e:r,l[1]=s;for(var u=2;u=0||(l[n]=t[n]);return l}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(l[n]=t[n])}return l}var p=a.createContext({}),m=function(t){var e=a.useContext(p),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},k=function(t){var e=m(t.components);return a.createElement(p.Provider,{value:e},t.children)},N="mdxType",o={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},u=a.forwardRef((function(t,e){var n=t.components,l=t.mdxType,r=t.originalType,p=t.parentName,k=d(t,["components","mdxType","originalType","parentName"]),N=m(n),u=l,g=N["".concat(p,".").concat(u)]||N[u]||o[u]||r;return n?a.createElement(g,i(i({ref:e},k),{},{components:n})):a.createElement(g,i({ref:e},k))}));function g(t,e){var n=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var r=n.length,i=new Array(r);i[0]=u;var d={};for(var p in e)hasOwnProperty.call(e,p)&&(d[p]=e[p]);d.originalType=t,d[N]="string"==typeof t?t:l,i[1]=d;for(var m=2;m=0||(l[n]=t[n]);return l}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(l[n]=t[n])}return l}var p=a.createContext({}),m=function(t){var e=a.useContext(p),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},k=function(t){var e=m(t.components);return a.createElement(p.Provider,{value:e},t.children)},N="mdxType",o={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},u=a.forwardRef((function(t,e){var n=t.components,l=t.mdxType,r=t.originalType,p=t.parentName,k=d(t,["components","mdxType","originalType","parentName"]),N=m(n),u=l,g=N["".concat(p,".").concat(u)]||N[u]||o[u]||r;return n?a.createElement(g,i(i({ref:e},k),{},{components:n})):a.createElement(g,i({ref:e},k))}));function g(t,e){var n=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var r=n.length,i=new Array(r);i[0]=u;var d={};for(var p in e)hasOwnProperty.call(e,p)&&(d[p]=e[p]);d.originalType=t,d[N]="string"==typeof t?t:l,i[1]=d;for(var m=2;m=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),u=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(l.Provider,{value:t},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=u(n),k=r,m=d["".concat(l,".").concat(k)]||d[k]||c[k]||o;return n?a.createElement(m,i(i({ref:t},p),{},{components:n})):a.createElement(m,i({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=k;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:r,i[1]=s;for(var u=2;u "),"\u3002"),(0,r.kt)("p",null,"To run Task for Visual Studio Code, you can open the project in VSCode and hit F5 (or whatever you debug keybind is set to). This will open a new VSCode window with the extension running. Debugging this way is recommended as it will allow you to set breakpoints and step through the code. Otherwise, you can run ",(0,r.kt)("inlineCode",{parentName:"p"},"task package")," which will generate a ",(0,r.kt)("inlineCode",{parentName:"p"},".vsix")," file that can be used to manually install the extension."),(0,r.kt)("h3",{id:"\u66f4\u65b0\u6587\u6863"},"\u66f4\u65b0\u6587\u6863"),(0,r.kt)("p",null,"Task uses ",(0,r.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," to host a documentation server. The code for this is located in the core Task repository. This can be setup and run locally by using ",(0,r.kt)("inlineCode",{parentName:"p"},"task docs")," (requires ",(0,r.kt)("inlineCode",{parentName:"p"},"nodejs")," & ",(0,r.kt)("inlineCode",{parentName:"p"},"yarn"),"). All content is written in Markdown and is located in the ",(0,r.kt)("inlineCode",{parentName:"p"},"docs/docs")," directory. All Markdown documents should have an 80 character line wrap limit (enforced by Prettier)."),(0,r.kt)("p",null,"\u8fdb\u884c\u53d8\u66f4\u65f6\uff0c\u8bf7\u8003\u8651\u662f\u5426\u6709\u5fc5\u8981\u66f4\u6539 ",(0,r.kt)("a",{parentName:"p",href:"/zh-Hans/usage/"},"\u4f7f\u7528\u6307\u5357"),"\u3002 \u672c\u6587\u6863\u5305\u542b\u6709\u5173\u5982\u4f55\u4f7f\u7528\u4efb\u52a1\u529f\u80fd\u7684\u8bf4\u660e\u548c\u793a\u4f8b\u3002 \u5982\u679c\u60a8\u8981\u6dfb\u52a0\u65b0\u529f\u80fd\uff0c\u8bf7\u5c1d\u8bd5\u627e\u5230\u5408\u9002\u7684\u4f4d\u7f6e\u6765\u6dfb\u52a0\u65b0\u90e8\u5206\u3002 \u5982\u679c\u60a8\u8981\u66f4\u65b0\u73b0\u6709\u529f\u80fd\uff0c\u8bf7\u786e\u4fdd\u6587\u6863\u548c\u6240\u6709\u793a\u4f8b\u90fd\u662f\u6700\u65b0\u7684\u3002 \u786e\u4fdd\u4efb\u4f55\u793a\u4f8b\u90fd\u9075\u5faa ",(0,r.kt)("a",{parentName:"p",href:"/zh-Hans/styleguide/"},"Taskfile \u98ce\u683c\u6307\u5357"),"\u3002"),(0,r.kt)("p",null,"\u5982\u679c\u60a8\u6dfb\u52a0\u4e86\u65b0\u5b57\u6bb5\u3001\u547d\u4ee4\u6216\u6807\u5fd7\uff0c\u8bf7\u786e\u4fdd\u5c06\u5176\u6dfb\u52a0\u5230 ",(0,r.kt)("a",{parentName:"p",href:"/zh-Hans/api/"},"API \u53c2\u8003")," \u4e2d\u3002 New fields also need to be added to the ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/blob/main/docs/static/schema.json"},"JSON Schema"),". API \u53c2\u8003\u548c schema \u4e2d\u7684\u5b57\u6bb5\u63cf\u8ff0\u5e94\u8be5\u5339\u914d\u3002"),(0,r.kt)("h3",{id:"\u7f16\u5199\u6d4b\u8bd5"},"\u7f16\u5199\u6d4b\u8bd5"),(0,r.kt)("p",null,"A lot of Task's tests are held in the ",(0,r.kt)("inlineCode",{parentName:"p"},"task_test.go")," file in the project root and this is where you'll most likely want to add new ones too. Most of these tests also have a subdirectory in the ",(0,r.kt)("inlineCode",{parentName:"p"},"testdata")," directory where any Taskfiles/data required to run the tests are stored."),(0,r.kt)("p",null,"\u8fdb\u884c\u66f4\u6539\u65f6\uff0c\u8bf7\u8003\u8651\u662f\u5426\u9700\u8981\u6dfb\u52a0\u65b0\u7684\u6d4b\u8bd5\u3002 \u8fd9\u4e9b\u6d4b\u8bd5\u5e94\u786e\u4fdd\u60a8\u6dfb\u52a0\u7684\u529f\u80fd\u5728\u672a\u6765\u6301\u7eed\u5de5\u4f5c\u3002 \u5982\u679c\u60a8\u66f4\u6539\u4e86 Task \u7684\u884c\u4e3a\uff0c\u5219\u73b0\u6709\u6d4b\u8bd5\u4e5f\u53ef\u80fd\u9700\u8981\u66f4\u65b0\u3002"),(0,r.kt)("p",null,"You may also consider adding unit tests for any new functions you have added. The unit tests should follow the Go convention of being location in a file named ",(0,r.kt)("inlineCode",{parentName:"p"},"*_test.go")," in the same package as the code being tested."),(0,r.kt)("h2",{id:"3-\u63d0\u4ea4\u4ee3\u7801"},"3. \u63d0\u4ea4\u4ee3\u7801"),(0,r.kt)("p",null,"\u5c1d\u8bd5\u7f16\u5199\u6709\u610f\u4e49\u7684\u63d0\u4ea4\u6d88\u606f\u5e76\u907f\u514d\u5728 PR \u4e0a\u6709\u592a\u591a\u63d0\u4ea4\u3002 \u5927\u591a\u6570 PR \u5e94\u8be5\u6709\u4e00\u4e2a\u5355\u4e00\u7684\u63d0\u4ea4\uff08\u5c3d\u7ba1\u5bf9\u4e8e\u66f4\u5927\u7684 PR \u5c06\u5b83\u5206\u6210\u51e0\u4e2a\u53ef\u80fd\u662f\u5408\u7406\u7684\uff09\u3002 Git squash \u548c rebase \u662f\u4f60\u7684\u597d\u670b\u53cb!"),(0,r.kt)("p",null,"If you're not sure how to format your commit message, check out ",(0,r.kt)("a",{parentName:"p",href:"https://www.conventionalcommits.org"},"Conventional Commits"),". This style is not enforced, but it is a good way to make your commit messages more readable and consistent."),(0,r.kt)("h2",{id:"4-\u63d0\u4ea4-pr"},"4. \u63d0\u4ea4 PR"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"\u63cf\u8ff0\u53d8\u66f4")," - \u786e\u4fdd\u60a8\u63d0\u4f9b\u5bf9\u66f4\u6539\u7684\u5168\u9762\u63cf\u8ff0\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Issue/PR \u94fe\u63a5")," - \u94fe\u63a5\u5230\u4e4b\u524d\u76f8\u5173\u7684 Issue \u6216 PR\u3002 \u8bf7\u63cf\u8ff0\u5f53\u524d\u5de5\u4f5c\u4e0e\u4e4b\u524d\u7684\u4e0d\u540c\u4e4b\u5904\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Examples")," - Add any examples or screenshots that you think are useful to demonstrate the effect of your changes."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"PR \u8349\u6848")," - \u5982\u679c\u53d8\u66f4\u8fd8\u672a\u5b8c\u6210\uff0c\u4f46\u60a8\u60f3\u8ba8\u8bba\u5b83\u4eec\uff0c\u8bf7\u5c06 PR \u4f5c\u4e3a\u8349\u7a3f\u6253\u5f00\u5e76\u6dfb\u52a0\u8bc4\u8bba\u4ee5\u5f00\u59cb\u8ba8\u8bba\u3002 \u4f7f\u7528\u8bc4\u8bba\u800c\u4e0d\u662f PR \u63cf\u8ff0\u5141\u8bb8\u7a0d\u540e\u66f4\u65b0\u63cf\u8ff0\uff0c\u540c\u65f6\u4fdd\u7559\u8ba8\u8bba\u3002")),(0,r.kt)("h2",{id:"\u5e38\u89c1\u95ee\u9898"},"\u5e38\u89c1\u95ee\u9898"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6211\u60f3\u8d21\u732e\uff0c\u6211\u4ece\u54ea\u91cc\u5f00\u59cb\uff1f")),(0,r.kt)("p",null,"Take a look at the list of ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/issues"},"open issues for Task")," or ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/go-task/vscode-task/issues"},"Task for Visual Studio Code"),". We have a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22"},"good first issue")," label for simpler issues that are ideal for first time contributions."),(0,r.kt)("p",null,"\u6b22\u8fce\u5404\u79cd\u8d21\u732e\uff0c\u65e0\u8bba\u662f\u62fc\u5199\u9519\u8bef\u4fee\u590d\u8fd8\u662f\u5f88\u5c0f\u7684\u65b0\u529f\u80fd\u3002 \u60a8\u8fd8\u53ef\u4ee5\u901a\u8fc7\u5bf9 Issue \u8fdb\u884c\u6295\u7968/\u8bc4\u8bba\u3001\u5e2e\u52a9\u56de\u7b54\u95ee\u9898\u6216\u5e2e\u52a9 ",(0,r.kt)("a",{parentName:"p",href:"/zh-Hans/community/"},"\u5176\u4ed6\u793e\u533a\u9879\u76ee")," \u6765\u505a\u51fa\u8d21\u732e\u3002"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6211\u88ab\u56f0\u4f4f\u4e86\uff0c\u6211\u5728\u54ea\u91cc\u53ef\u4ee5\u83b7\u5f97\u5e2e\u52a9\uff1f")),(0,r.kt)("p",null,"If you have questions, feel free to ask them in the ",(0,r.kt)("inlineCode",{parentName:"p"},"#help")," forum channel on our ",(0,r.kt)("a",{parentName:"p",href:"https://discord.gg/6TY36E39UK"},"Discord server")," or open a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/discussions"},"Discussion")," on GitHub."),(0,r.kt)("hr",null))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh-Hans/assets/js/dd4fb81f.bba25cef.js b/zh-Hans/assets/js/dd4fb81f.bba25cef.js deleted file mode 100644 index 33fdc00d..00000000 --- a/zh-Hans/assets/js/dd4fb81f.bba25cef.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunktaskfile_dev=self.webpackChunktaskfile_dev||[]).push([[188],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},k="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),k=p(n),m=r,d=k["".concat(s,".").concat(m)]||k[m]||c[m]||i;return n?a.createElement(d,l(l({ref:t},u),{},{components:n})):a.createElement(d,l({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[k]="string"==typeof e?e:r,l[1]=o;for(var p=2;p "),"\u3002"),(0,r.kt)("h3",{id:"\u66f4\u65b0\u6587\u6863"},"\u66f4\u65b0\u6587\u6863"),(0,r.kt)("p",null,"Task \u7528 ",(0,r.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurus")," \u6258\u7ba1\u6587\u6863\u670d\u52a1\u3002 \u8fd9\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"task docs"),"\uff08\u9700\u8981 ",(0,r.kt)("inlineCode",{parentName:"p"},"nodejs")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"yarn"),"\uff09\u5728\u672c\u5730\u8bbe\u7f6e\u548c\u8fd0\u884c\u3002 \u6240\u6709\u5185\u5bb9\u5747\u4f7f\u7528 Markdown \u7f16\u5199\uff0c\u4f4d\u4e8e ",(0,r.kt)("inlineCode",{parentName:"p"},"docs/docs")," \u76ee\u5f55\u4e2d\u3002 \u6240\u6709 Markdown \u6587\u6863\u90fd\u5e94\u6709 80 \u4e2a\u5b57\u7b26\u7684\u6362\u884c\u9650\u5236\u3002"),(0,r.kt)("p",null,"\u8fdb\u884c\u53d8\u66f4\u65f6\uff0c\u8bf7\u8003\u8651\u662f\u5426\u6709\u5fc5\u8981\u66f4\u6539 ",(0,r.kt)("a",{parentName:"p",href:"/zh-Hans/usage/"},"\u4f7f\u7528\u6307\u5357"),"\u3002 \u672c\u6587\u6863\u5305\u542b\u6709\u5173\u5982\u4f55\u4f7f\u7528\u4efb\u52a1\u529f\u80fd\u7684\u8bf4\u660e\u548c\u793a\u4f8b\u3002 \u5982\u679c\u60a8\u8981\u6dfb\u52a0\u65b0\u529f\u80fd\uff0c\u8bf7\u5c1d\u8bd5\u627e\u5230\u5408\u9002\u7684\u4f4d\u7f6e\u6765\u6dfb\u52a0\u65b0\u90e8\u5206\u3002 \u5982\u679c\u60a8\u8981\u66f4\u65b0\u73b0\u6709\u529f\u80fd\uff0c\u8bf7\u786e\u4fdd\u6587\u6863\u548c\u6240\u6709\u793a\u4f8b\u90fd\u662f\u6700\u65b0\u7684\u3002 \u786e\u4fdd\u4efb\u4f55\u793a\u4f8b\u90fd\u9075\u5faa ",(0,r.kt)("a",{parentName:"p",href:"/zh-Hans/styleguide/"},"Taskfile \u98ce\u683c\u6307\u5357"),"\u3002"),(0,r.kt)("p",null,"\u5982\u679c\u60a8\u6dfb\u52a0\u4e86\u65b0\u5b57\u6bb5\u3001\u547d\u4ee4\u6216\u6807\u5fd7\uff0c\u8bf7\u786e\u4fdd\u5c06\u5176\u6dfb\u52a0\u5230 ",(0,r.kt)("a",{parentName:"p",href:"/zh-Hans/api/"},"API \u53c2\u8003")," \u4e2d\u3002 \u8fd8\u9700\u8981\u5c06\u65b0\u5b57\u6bb5\u6dfb\u52a0\u5230 ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/blob/main/docs/static/schema.json"},"JSON Schema")," \u4e2d\u3002 API \u53c2\u8003\u548c schema \u4e2d\u7684\u5b57\u6bb5\u63cf\u8ff0\u5e94\u8be5\u5339\u914d\u3002"),(0,r.kt)("h3",{id:"\u7f16\u5199\u6d4b\u8bd5"},"\u7f16\u5199\u6d4b\u8bd5"),(0,r.kt)("p",null,"Task \u7684\u5927\u90e8\u5206\u6d4b\u8bd5\u90fd\u4fdd\u5b58\u5728\u9879\u76ee\u6839\u76ee\u5f55\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"task_test.go")," \u6587\u4ef6\u4e2d\u5e76\u4e14\u8fd9\u662f\u60a8\u6700\u6709\u53ef\u80fd\u60f3\u8981\u6dfb\u52a0\u65b0\u6d4b\u8bd5\u7684\u5730\u65b9\u3002 \u8fd9\u4e9b\u6d4b\u8bd5\u4e2d\u7684\u5927\u591a\u6570\u5728\u76ee\u5f55\u4e2d\u8fd8\u6709\u4e00\u4e2a ",(0,r.kt)("inlineCode",{parentName:"p"},"testdata")," \u5b50\u76ee\u5f55\uff0c\u5176\u4e2d\u5b58\u50a8\u4e86\u8fd0\u884c\u6d4b\u8bd5\u6240\u9700\u7684 Taskfiles/\u6570\u636e\u3002"),(0,r.kt)("p",null,"\u8fdb\u884c\u66f4\u6539\u65f6\uff0c\u8bf7\u8003\u8651\u662f\u5426\u9700\u8981\u6dfb\u52a0\u65b0\u7684\u6d4b\u8bd5\u3002 \u8fd9\u4e9b\u6d4b\u8bd5\u5e94\u786e\u4fdd\u60a8\u6dfb\u52a0\u7684\u529f\u80fd\u5728\u672a\u6765\u6301\u7eed\u5de5\u4f5c\u3002 \u5982\u679c\u60a8\u66f4\u6539\u4e86 Task \u7684\u884c\u4e3a\uff0c\u5219\u73b0\u6709\u6d4b\u8bd5\u4e5f\u53ef\u80fd\u9700\u8981\u66f4\u65b0\u3002"),(0,r.kt)("h2",{id:"3-\u63d0\u4ea4\u4ee3\u7801"},"3. \u63d0\u4ea4\u4ee3\u7801"),(0,r.kt)("p",null,"\u5c1d\u8bd5\u7f16\u5199\u6709\u610f\u4e49\u7684\u63d0\u4ea4\u6d88\u606f\u5e76\u907f\u514d\u5728 PR \u4e0a\u6709\u592a\u591a\u63d0\u4ea4\u3002 \u5927\u591a\u6570 PR \u5e94\u8be5\u6709\u4e00\u4e2a\u5355\u4e00\u7684\u63d0\u4ea4\uff08\u5c3d\u7ba1\u5bf9\u4e8e\u66f4\u5927\u7684 PR \u5c06\u5b83\u5206\u6210\u51e0\u4e2a\u53ef\u80fd\u662f\u5408\u7406\u7684\uff09\u3002 Git squash \u548c rebase \u662f\u4f60\u7684\u597d\u670b\u53cb!"),(0,r.kt)("h2",{id:"4-\u63d0\u4ea4-pr"},"4. \u63d0\u4ea4 PR"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"\u63cf\u8ff0\u53d8\u66f4")," - \u786e\u4fdd\u60a8\u63d0\u4f9b\u5bf9\u66f4\u6539\u7684\u5168\u9762\u63cf\u8ff0\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Issue/PR \u94fe\u63a5")," - \u94fe\u63a5\u5230\u4e4b\u524d\u76f8\u5173\u7684 Issue \u6216 PR\u3002 \u8bf7\u63cf\u8ff0\u5f53\u524d\u5de5\u4f5c\u4e0e\u4e4b\u524d\u7684\u4e0d\u540c\u4e4b\u5904\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"\u793a\u4f8b")," - \u6dfb\u52a0\u60a8\u8ba4\u4e3a\u6709\u52a9\u4e8e\u5c55\u793a\u53d8\u66f4\u6548\u679c\u7684\u793a\u4f8b\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"PR \u8349\u6848")," - \u5982\u679c\u53d8\u66f4\u8fd8\u672a\u5b8c\u6210\uff0c\u4f46\u60a8\u60f3\u8ba8\u8bba\u5b83\u4eec\uff0c\u8bf7\u5c06 PR \u4f5c\u4e3a\u8349\u7a3f\u6253\u5f00\u5e76\u6dfb\u52a0\u8bc4\u8bba\u4ee5\u5f00\u59cb\u8ba8\u8bba\u3002 \u4f7f\u7528\u8bc4\u8bba\u800c\u4e0d\u662f PR \u63cf\u8ff0\u5141\u8bb8\u7a0d\u540e\u66f4\u65b0\u63cf\u8ff0\uff0c\u540c\u65f6\u4fdd\u7559\u8ba8\u8bba\u3002")),(0,r.kt)("h2",{id:"\u5e38\u89c1\u95ee\u9898"},"\u5e38\u89c1\u95ee\u9898"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6211\u60f3\u8d21\u732e\uff0c\u6211\u4ece\u54ea\u91cc\u5f00\u59cb\uff1f")),(0,r.kt)("p",null,"\u67e5\u770b ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/issues"},"\u672a\u89e3\u51b3 Issue")," \u7684\u5217\u8868\u3002 \u6211\u4eec\u6709\u4e00\u4e2a ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22"},"good first issue")," \u6807\u7b7e\uff0c\u7528\u4e8e\u66f4\u7b80\u5355\u7684\u95ee\u9898\uff0c\u975e\u5e38\u9002\u5408\u9996\u6b21\u8d21\u732e\u3002"),(0,r.kt)("p",null,"\u6b22\u8fce\u5404\u79cd\u8d21\u732e\uff0c\u65e0\u8bba\u662f\u62fc\u5199\u9519\u8bef\u4fee\u590d\u8fd8\u662f\u5f88\u5c0f\u7684\u65b0\u529f\u80fd\u3002 \u60a8\u8fd8\u53ef\u4ee5\u901a\u8fc7\u5bf9 Issue \u8fdb\u884c\u6295\u7968/\u8bc4\u8bba\u3001\u5e2e\u52a9\u56de\u7b54\u95ee\u9898\u6216\u5e2e\u52a9 ",(0,r.kt)("a",{parentName:"p",href:"/zh-Hans/community/"},"\u5176\u4ed6\u793e\u533a\u9879\u76ee")," \u6765\u505a\u51fa\u8d21\u732e\u3002"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6211\u88ab\u56f0\u4f4f\u4e86\uff0c\u6211\u5728\u54ea\u91cc\u53ef\u4ee5\u83b7\u5f97\u5e2e\u52a9\uff1f")),(0,r.kt)("p",null,"\u5982\u679c\u60a8\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u8bf7\u968f\u65f6\u5728\u6211\u4eec\u7684 ",(0,r.kt)("a",{parentName:"p",href:"https://discord.gg/6TY36E39UK"},"Discord \u670d\u52a1\u5668")," \u4e0a\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"#help")," \u8bba\u575b\u9891\u9053\u4e2d\u63d0\u95ee\uff0c\u6216\u5728 GitHub \u4e0a\u6253\u5f00 ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/go-task/task/discussions"},"\u8ba8\u8bba"),"\u3002"),(0,r.kt)("hr",null))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/zh-Hans/assets/js/runtime~main.0d56d8f9.js b/zh-Hans/assets/js/runtime~main.a86bcaa2.js similarity index 97% rename from zh-Hans/assets/js/runtime~main.0d56d8f9.js rename to zh-Hans/assets/js/runtime~main.a86bcaa2.js index d72280f5..625467b2 100644 --- a/zh-Hans/assets/js/runtime~main.0d56d8f9.js +++ b/zh-Hans/assets/js/runtime~main.a86bcaa2.js @@ -1 +1 @@ -!function(){"use strict";var e,t,n,r,o,f={},a={};function u(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={id:e,loaded:!1,exports:{}};return f[e].call(n.exports,n,n.exports,u),n.loaded=!0,n.exports}u.m=f,u.c=a,e=[],u.O=function(t,n,r,o){if(!n){var f=1/0;for(d=0;d=o)&&Object.keys(u.O).every((function(e){return u.O[e](n[i])}))?n.splice(i--,1):(a=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,r,o]},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},u.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);u.r(o);var f={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){f[t]=function(){return e[t]}}));return f.default=function(){return e},u.d(o,f),o},u.d=function(e,t){for(var n in t)u.o(t,n)&&!u.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},u.f={},u.e=function(e){return Promise.all(Object.keys(u.f).reduce((function(t,n){return u.f[n](e,t),t}),[]))},u.u=function(e){return"assets/js/"+({2:"4fc1c6af",31:"51de5da2",38:"14b2bd35",53:"935f2afb",97:"835b845c",133:"f1d66b0d",188:"dd4fb81f",204:"89e58501",425:"87f30f6b",514:"1be78505",595:"d0766b26",597:"8152bf4e",634:"1fd60438",701:"01713e21",825:"0f29a59d",863:"5b2a233e",868:"8faba80b",889:"49514f56",918:"17896441",920:"1a4e3797"}[e]||e)+"."+{2:"78ad6e5b",31:"9fa09e5b",38:"c717b5ee",53:"e74fa435",97:"0a3e0609",133:"6862b446",188:"bba25cef",204:"418fa946",425:"e73575d1",514:"9062895a",595:"c5627647",597:"dafec294",634:"357460eb",701:"bb00eb2e",780:"b979b06f",825:"ea44a842",863:"d9ce1ba9",868:"70950a98",889:"db0b6f85",894:"4bf7d380",918:"e75765f6",920:"a9132d06",945:"3694633c",972:"01a5a892"}[e]+".js"},u.miniCssF=function(e){},u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="taskfile-dev:",u.l=function(e,t,n,f){if(r[e])r[e].push(t);else{var a,i;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d=o)&&Object.keys(u.O).every((function(e){return u.O[e](n[i])}))?n.splice(i--,1):(a=!1,o0&&e[d-1][2]>o;d--)e[d]=e[d-1];e[d]=[n,r,o]},u.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},u.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);u.r(o);var f={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){f[t]=function(){return e[t]}}));return f.default=function(){return e},u.d(o,f),o},u.d=function(e,t){for(var n in t)u.o(t,n)&&!u.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},u.f={},u.e=function(e){return Promise.all(Object.keys(u.f).reduce((function(t,n){return u.f[n](e,t),t}),[]))},u.u=function(e){return"assets/js/"+({2:"4fc1c6af",31:"51de5da2",38:"14b2bd35",53:"935f2afb",97:"835b845c",133:"f1d66b0d",188:"dd4fb81f",204:"89e58501",425:"87f30f6b",514:"1be78505",595:"d0766b26",597:"8152bf4e",634:"1fd60438",701:"01713e21",825:"0f29a59d",863:"5b2a233e",868:"8faba80b",889:"49514f56",918:"17896441",920:"1a4e3797"}[e]||e)+"."+{2:"78ad6e5b",31:"9fa09e5b",38:"c717b5ee",53:"e74fa435",97:"0a3e0609",133:"6862b446",188:"21e0cfa3",204:"baac19ce",425:"e73575d1",514:"9062895a",595:"c5627647",597:"dafec294",634:"357460eb",701:"bb00eb2e",780:"b979b06f",825:"7bc7088c",863:"d9ce1ba9",868:"d60bcae5",889:"db0b6f85",894:"4bf7d380",918:"e75765f6",920:"a9132d06",945:"3694633c",972:"01a5a892"}[e]+".js"},u.miniCssF=function(e){},u.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),u.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="taskfile-dev:",u.l=function(e,t,n,f){if(r[e])r[e].push(t);else{var a,i;if(void 0!==n)for(var c=document.getElementsByTagName("script"),d=0;d