
mise 演示指南用mise exec、mise use与mise activate管理多版本开发工具【免费下载链接】misedev tools, env vars, task runner项目地址: https://gitcode.com/GitHub_Trending/mi/mise这篇指南基于 docs/demo.md 及配套演示录像带你完整走一遍 mise 的三大核心能力用mise exec按需运行指定版本的工具、用mise use安装并记录 jq / terraform / go 等大量工具、以及在同一台机器上通过全局默认值与项目配置并存的方式管理多个 Node.js 版本。读完本文你将掌握如何在不污染当前 shell 的情况下临时调用工具、如何激活 mise 让工具自动进入 PATH以及如何让项目配置精确覆盖个人全局默认值。演示视频总览仓库中的官方演示视频源文件 docs/tapes/demo.mp4静态预览图 docs/tapes/demo.gif录像脚本 docs/tapes/demo.tape围绕三个能力展开使用mise exec以特定版本的工具运行一条命令使用mise安装大量其他工具例如jq、terraform、go、bat使用mise在同一系统上管理多个node版本全局 LTS 与项目指定的 26 系列并存。下面按照录像的完整流程逐步讲解。文中的命令与版本请求均保持对当前 mise 可用录像中的具体版本号、路径与输出可能略有差异。要跟着练习请先参考 安装指南 安装 mise并准备一个 Bash shell。演示会修改全局工具默认值如果不想影响正常配置建议在临时环境中操作。用mise exec运行单条命令两条最基础的命令mise exec node26 -- node --version mise exec terraform -- terraform version第一行要求以 Node.js 26 系列运行node --version第二行不带版本号表示使用配置中已有的 terraform若配置中未声明则按最新版解析。mise exec的行为边界mise exec会先安装缺失的工具再让该工具对子命令可见但它不会为调用它的 shell 选择工具也不会把版本请求写入mise.toml。因此随后直接执行一条普通的node --version得到的仍是 shell 原本 PATH 上的 Node.js如果存在的话。从源码看这一行为由 src/cli/exec.rs 实现命令会先通过ToolsetBuilder把TOOLVERSION参数合并进工具集with_args并以with_default_to_latest(true)处理未指定版本的工具随后调用ts.install_missing_versions按需补齐安装。真正执行时exec_program 会对 PATH 重新排序——把 mise 加入的工具目录排到系统 PATH 之前——再通过exec替换当前进程所以工具环境只作用于这条子命令本身。常用进阶参数mise exec在源码中注册了别名x例如 src/cli/exec.rs 中的示例mise x node20 -- node ./app.js此外还支持--command ...短选项-c通过 shell 执行命令字符串支持管道与重定向例如mise exec node20 python3.11 --command node -v python -V-C /path/to/project在指定目录下运行--jobs N环境变量MISE_JOBS并行安装任务数默认取jobs设置--fresh-env绕过环境缓存重新计算环境--deny-net/--deny-read/--deny-write/--deny-env/--allow-env等沙箱选项限制子进程的网络、文件系统与环境变量访问Linux 下基于 Landlock/seccompmacOS 下基于 sandbox-execWindows 不支持沙箱。激活 mise 并选择全局默认值mise exec适合一次性命令交互式 shell 中更常用的做法是激活 mise让工具随目录切换自动进入 PATH。eval $(mise activate bash) mise use --global nodelts node --version which nodeeval $(mise activate bash)把激活脚本注入当前 shell。激活后每次提示符刷新mise 都会根据当前目录重新计算 PATH 与环境变量对应 src/cli/activate.rs 的激活逻辑默认走修改 PATH 的路线也可用--shims改用 shims。该行通常应写入~/.bashrczsh 写~/.zshrcfish 写~/.config/fish/config.fishPowerShell 写$PROFILE。mise use --global nodelts安装 Node.js LTS 版本并把请求写入全局配置文件~/.config/mise/config.toml。注意lts是一个由 Node.js 后端解析的发布请求release request不是精确版本号因此它解析到的具体版本会随时间变化。node --version显示激活后 shell 实际选中的 Node.js 版本。which node显示该 shell 选中的可执行文件路径。使用 PATH 激活时这里通常返回真实的已安装二进制文件而不是 shim这正是录像中特别强调的一点。继续添加其他全局工具mise use --global terraform jq go terraform version jq --version go version mise ls --currentmise use可以一次传入多个工具。从 src/cli/use.rs 的实现看该命令会先install_all_versions安装缺失版本再把版本请求写回配置文件并重建 shims 与运行时符号链接--global短选项-g会把请求写入全局配置而非项目配置。最后一行mise ls --current只显示当前配置请求的工具版本实现见 src/cli/ls.rs其--current选项含义为“只显示当前 mise.toml 中指定的版本”。在项目中覆盖全局默认值创建项目并指定工具版本mkdir myproj cd myproj mise use node26 pnpm10 node --version pnpm --version cat mise.tomlmise use会在当前目录生成或更新mise.toml项目配置文件内容为[tools] node 26 pnpm 10项目配置与全局配置的优先级在这个项目目录内Node.js 26 会覆盖全局的lts请求。离开项目目录、等待下一个 shell 提示符后全局选择会恢复cd .. node --version mise ls --current这正是 mise 的配置层级机制项目配置优先于全局默认值。如需查看当前生效的配置文件可在项目目录运行mise config ls。关于配置覆盖与升级的完整讲解可继续阅读 walkthrough 文档。演示录像对应的完整流程录像脚本 docs/tapes/demo.tape 忠实记录了上述流程并补充了若干细节全局步骤使用mise use -g terraform jq go bat演示中还安装了bat并用mise ls查看安装结果进入myproj后先执行mise use node26 pnpm10再验证node -v输出v26.x、pnpm -v正常最后用bat mise.toml展示配置内容。如果你想重新录制这套演示仓库注释标明可运行mise run docs:demo来生成新的 GIF/MP4。关键命令的源码级要点命令作用实现位置关键行为mise exec别名x用指定工具集运行子命令src/cli/exec.rs按需安装缺失工具只对子进程生效不改写配置文件支持--command、--jobs、沙箱选项mise use别名u安装工具并写入配置src/cli/use.rs默认写最近目录的低优先级配置文件如mise.toml--global写全局配置--pin/--fuzzy控制写入精确版本还是模糊版本支持--env写环境专属配置mise activate输出激活脚本src/cli/activate.rs默认通过修改 PATH 激活--shims改为将 shims 目录加入 PATH--no-hook-env便于调试mise ls别名list列出已安装与激活的版本src/cli/ls.rs--current只看当前配置--installed/--missing过滤安装状态--json输出机器可读结果关于“版本请求”的语义src/backend/mod.rs 提供了底层支撑像lts、latest这类滚动频道rolling channel会被后端解析为当前具体的版本号并可在mise upgrade/mise outdated时跟踪新版本而不是永远钉住频道名本身。下一步第一次为项目配置工具、环境变量与任务请阅读 getting started 入门指南深入了解配置覆盖、升级与日常命令请阅读 walkthrough 完整教程想在编辑器或 CI 中让工具自动可用可参考 shims 机制与mise run任务执行相关讨论见 dev-tools 目录 与 tasks 目录。【免费下载链接】misedev tools, env vars, task runner项目地址: https://gitcode.com/GitHub_Trending/mi/mise创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考