3 个不稳定版本

0.2.0 2021 年 5 月 18 日
0.1.1 2020 年 11 月 22 日
0.1.0 2020 年 11 月 22 日

#11#node-modules

Zlib 许可证

14KB
254

felt - 定义别名并执行它们。

felt 是一个用 Rust 编写的简单命令行运行器。

安装

首先安装 Rust。然后您可以使用 cargo 命令来安装 felt

cargo 命令与 Rust 一起打包。

cargo install felt

支持的操作系统

系列 支持 注意
Windows 🚧
macOS(Intel)
macOS(Apple Silicon)
Linux

用法

在您的家目录中放置一个 .feltrc.toml 文件,这意味着 ~/.feltrc.toml 文件。

[felt]
root = true
node_modules = true

[command]
hello = "echo Hello! I\\'m Felt!"
nid = "npm install --save-dev"

您已经在上文中定义了 hello 命令。让我们执行它

felt hello

您将得到输出 Hello! I'm Felt!

您也可以使用参数执行它们。

felt nid esbuild react react-dom

执行 node_modules

felt 可以直接在 ./node_modules/.bin/ 中执行命令。如果您想使用此功能,请将 node_modules.feltrc.toml 中设置为 true

# You may have some Node.js binaries.
npm install esbuild

# This execute ./node_modules/.bin/esbuild
felt esbuild index.js --minify --oufile build/index.js

注意: 目前,felt 仅在当前执行目录中搜索 node_modules。即使其他相关目录有 node_modulesfelt 也无法找到它。

.feltrc.toml

.feltrc.tomlfelt 的配置文件。它可能放在家目录中。

[felt]
# If root is true, felt doesn't see parent directory's .fetlrc.toml
# If this file is in home, you should set root to true.
# You can omit this line when it is false.
root = true

# If node_modules is true, felt can run binaries in ./node_modules/.bin/
# If false, disable the feature.
# If omit this line, its value is inherit from parent, or false when no parents set any value.
node_modules = true

[command]
# You can define yor command aliases!

# felt redis-up
redis-up = "docker run -it --rm -p 6379:6379 redis"

# felt countfiles
countfiles = "ls -l | wc -l"

列出所有您的命令

felt --list

felt -l

本地 .feltrc.toml

felt 按以下顺序使用 .feltrc.toml

  1. 当前目录
  2. 父目录
  3. 祖父目录...(递归)

如果当前目录不在家目录外(例如 /tmp/),则将 ~/.feltrc.toml 添加到上述列表的最后。

如果 felt 找到 root = true 文件。 felt 将在此处停止遍历。

例如,家目录的 .feltrc.toml

[felt]
root = true
node_modules = false

[command]
hello = "echo Hello"
hello2 = "echo Hi"

并且 ~/myproject/.feltrc.toml

[felt]
node_modules = true

[command]
hello = "echo Helloooooooooooooooo"

您可以使用

cd ~/myproject
felt hello
felt hello2

依赖项

~0.6–1.5MB
~30K SLoC