pnodev/jim-core

命令行任务运行器

维护者

详细信息

gitlab.pno.dev/jimcli/jim-core

1.1.1 2023-12-12 13:36 UTC

This package is not auto-updated.

Last update: 2024-10-01 18:12:49 UTC


README

Logo

jim

jim 是一个高度可扩展的任务运行器。

Screencast

概念

jim 由两部分组成:cli 命令和 jim-core 包。

jim-cli

jim 命令只是一个包装器,使得 jim 命令可以在全局范围内使用。当你运行一个 jim 命令时,它会在当前工作目录中查找 jim-runtime,并将命令委托给它。

jim-core (此包)

jim-runtime 可以通过 Composernpm 进行安装。一旦你在项目中安装了该包,你就可以执行 jim 命令。

jim-core 和 jim-scripts

jim-core 包自带了一组预安装的命令。jim 的真正力量在于 jim-scripts 的概念。

你可以编写自己的命令作为 node-或 shell-scripts,并将它们提供给 jim。

安装

jim-cli

你可以通过在仓库内执行 install.sh 脚本来安装 jim 命令。你只需要这样做一次。

jim-core

根据你的项目,你可以使用以下命令安装 jim-core

注意 建议将 jim-core 作为 dev-dependency 安装

Node / npm

npm install -D @pnodev/jim-core

PHP / Composer

composer require --dev pnodev/jim-core

配置/使用

你可以通过 .jimrc 文件提供项目特定的配置

NODE_VERSION=20
DIR_JIM_SCRIPTS=./jim-scripts
变量描述
NODE_VERSION如果你设置了 node 版本,jim 将确保在执行 node 命令之前通过 nvm 设置正确的版本。这在你需要在需要不同 node 版本的项目之间频繁切换时特别有用。
DIR_JIM_SCRIPTS使指定位置的 node-或 shell-scripts 可用作 jim-命令。

你可以在其中添加更多项目特定的变量。所有在 .jimrc 中定义的变量都将暴露给命令,因此你可以在脚本中使用它们。例如,你可以添加变量来定义你的 JavaScript 文件的路径,并在 esbuild-task 中使用它。

编写自定义命令

自定义命令可以编写为 shell 脚本。jim-runtime 为你提供了以下辅助器来以一致的方式编写你的脚本

环境变量

以下环境变量将可用于你的命令

变量描述
DIR_JIM_SCRIPTS你的 jim-scripts 文件夹的路径
DIR_CORE你的 jim-core 包的路径

注意 此外,所有你在 .jimrc 中定义的变量也将可用。

实用函数

通过导入以下脚本,你可以访问一系列实用函数

source "${DIR_CORE}/utils.sh"

颜色

为了生成更令人愉悦的终端输出,你可以使用以下变量来格式化你的日志

变量描述
COLOR_RESET重置所有格式化
COLOR_YELLOW将颜色设置为黄色
COLOR_BLUE将颜色设置为蓝色
COLOR_GREEN将颜色设置为绿色
COLOR_RED将颜色设置为红色
COLOR_CYAN将颜色设置为青色
COLOR_DIMMED降低输出颜色
COLOR_BOLD格式化输出加粗

_log

_log 函数提供了一种一致输出行为。建议对所有日志使用它。它接受输出字符串作为第一个参数,以及一个可选的第二个参数来设置输出颜色。

_log "This is a yellow string" "${COLOR_YELLOW}"

_ask

_ask 函数显示一个提示,用户可以用是或否来回答。这个函数的一个良好用途是在执行可能危险的命令之前询问用户的确认。

source "${DIR_CORE}/utils.sh"

if _ask "This will overwrite the data on the deploy server, do you want to continue?"
then
  _log "… Stating update" "$COLOR_YELLOW"
  ddev updateDeploy
  _log "✓ update finished" "$COLOR_YELLOW"
  echo ""
fi

_box

_box 函数将在一个框中显示给定的字符串。

_box "I'm in a box"
┌──────────────┐
│ I'm in a box │
└──────────────┘

_invoke

_invoke 命令可用于启动另一个 jim-task 作为子任务。例如,如果你有一个应该启动 build:cssbuild:js 任务 的 build-task,你可以这样做:

source "${DIR_CORE}/utils.sh"

setNodeVersion

_invoke build:css
_invoke build:js

_announceTaskStart

用于宣布任务开始的预格式化日志。

_announceTaskStart "Building CSS"
[jim] 🚧 Building CSS

_announceTaskEnd

用于宣布任务完成的预格式化日志。

_announceTaskEnd "CSS built in ${PATH_CSS_OUT}"
[jim] 💪 CSS built in Resources/Public/Css/main.min.css

setNodeVersion

将节点版本设置为 .jimrc 中指定的版本。如果你需要在 shell-script 命令中调用 node-script,这很有用。

source "${DIR_CORE}/utils.sh"

setNodeVersion
npm install

移除 jim-cli

如果你想要从系统中移除 jim 命令,只需在这个仓库中执行 uninstall.sh 脚本。

许可协议

MIT