拓冰建站拓冰建站
首页 / 资讯中心 / 正文

mise 配置完全指南:mise.toml 分层合并、环境变量与版本文件的全面解析

mise 配置完全指南mise.toml 分层合并、环境变量与版本文件的全面解析【免费下载链接】misedev tools, env vars, task runner项目地址: https://gitcode.com/GitHub_Trending/mi/misemise 是一个集 dev tools开发工具版本管理、env vars环境变量与 task runner任务执行于一体的开发环境管理工具。本指南以 docs/configuration.md 为骨架系统讲解mise.toml的配置语法、配置文件的发现与合并层级、[tools]/[env]/[tasks]等各配置段的语义以及.tool-versions、idiomatic version files、作用域语法和环境变量配置项。读完本文你将能够搭建从全局默认到项目级、再到环境特定覆盖的完整配置体系并理解 mise 底层是如何通过源码实现这些合并规则的。快速上手一个文件搞定工具、环境变量与任务一个项目的mise.toml声明了工具、环境变量和任务。全局配置提供个人默认值项目与本地文件会覆盖它们。先从项目根目录的单个文件开始[tools] node 24 [env] NODE_ENV development [tasks.hello] run node --eval console.log(process.env.NODE_ENV)运行mise run hellomise 会在需要时先安装声明的工具然后打印development。可以用mise config查看当前生效的配置文件及加载顺序用mise ls --current查看当前选中的工具版本。配置目标参考文档工具版本与安装选项Dev tools传给命令的变量Environments模板中可复用的值Variables开发/测试/生产覆盖层Config Environments命令与依赖Tasksmise 自身行为Settingsmise.toml的合法路径与优先级mise.toml可以位于以下任意路径按优先级从高到低排列列表中越靠上的文件覆盖越靠下的文件mise.local.toml—— 本地配置不应提交到版本控制mise.tomlmise/config.tomlmise/conf.d/*.toml—— 该目录下所有非隐藏 TOML 文件按字母序加载形如x.base.toml的点分文件名正在被弃用仅在env_conf_d true时才只为匹配的环境加载.mise/config.toml.mise/conf.d/*.toml—— 同上.config/mise.toml—— 用于把配置文件集中到一个公共目录.config/mise/config.toml.config/mise/conf.d/*.toml—— 与分组配置目录下相同的片段加载与弃用行为提示运行mise config可以查看 mise 在你的环境中的实际加载顺序这通常比记忆规则容易得多。需要注意以mise开头的路径也可以是点文件例如.mise.toml或.mise/config.toml。此列表不包含 Configuration Environments它们允许环境特定配置文件如mise.development.toml通过MISE_ENVdevelopment选择像mise.windows.toml、mise.macos-arm64.toml这样的平台特定环境可以在auto_env设置下自动启用。该列表并未包含全部旧版路径。实际路径与优先级代码见LOCAL_CONFIG_FILENAMES。从源码看LOCAL_CONFIG_FILENAMES是一个IndexSet依次注册了.tool-versions、.config/mise/conf.d/*.toml、.config/mise/config.toml、.config/mise/mise.toml、.config/mise.toml、.mise/conf.d/*.toml、.mise/config.toml、mise/conf.d/*.toml、mise/config.toml、mise.toml、.mise.toml以及各级.local.toml变体见 src/config/mod.rs。环境特定模式则由env_config_patterns动态拼接如.config/mise/config.{env}.toml、mise.{env}.toml等见 src/config/mod.rs。配置层级合并规则与解析流程mise 使用分层配置系统从多个来源合并设置。理解这个层级有助于组织你的开发环境。合并是如何工作的mise 会在每个父目录中查找这些文件。如果你有~/src/work/myproj/mise.toml那么其中定义的内容会覆盖~/src/work/mise.toml或~/.config/mise.toml中设置的内容配置内容会被合并。配置解析流程当 mise 需要配置时会遵循以下流程读取早期配置包括选中的配置环境。发现系统与全局配置然后从当前目录向父目录搜索直到根目录或MISE_CEILING_PATHS。在层级每一层包含匹配的环境特定文件。合并文件子目录优先于父目录同目录变体遵循上面的顺序。环境特定的父文件不会仅仅因为命名了环境就覆盖普通的子文件。环境选择是文件发现的一部分而不是层级合并之后施加的最终覆盖。从源码看目录发现由all_dirs()/all_dirs_from()完成它们调用file::all_dirs(current_dir, MISE_CEILING_PATHS)从当前目录向上收集层级见 src/config/mod.rs。conf.d片段通过 globglobset::GlobBuilder且literal_separator(true)编译匹配保证片段只在对应目录层级生效见 src/config/mod.rs。配置层级图示/ ├── etc/mise/ # 系统级配置最低优先级 │ ├── conf.d/*.toml # 系统片段按字母序加载 │ ├── config.toml # 系统默认值 │ └── config.env.toml # 环境特定系统配置MISE_ENV 或 -E └── home/user/ ├── .config/mise/ │ ├── conf.d/*.toml # 用户片段按字母序加载 │ ├── config.toml # 全局用户配置 │ ├── config.env.toml # 环境特定用户配置 │ ├── config.local.toml # 用户本地覆盖 │ └── config.env.local.toml # 环境特定用户本地覆盖 └── work/ ├── mise.toml # 工作区级设置 └── myproject/ ├── mise.local.toml # 本地覆盖git 忽略 ├── mise.toml # 项目配置 ├── mise/ │ ├── config.toml # 可见的分组项目配置 │ └── conf.d/*.toml # 可见的项目片段按字母序加载 ├── .mise/ │ ├── config.toml # 分组在 .mise 下的项目配置 │ └── conf.d/*.toml # 项目片段按字母序加载 ├── mise.env.toml # 环境特定项目配置 ├── mise.env.local.toml # 环境特定项目本地覆盖 └── backend/ └── mise.toml # 服务特定配置最高优先级各配置段的合并行为不同配置段的合并方式不同工具[tools]叠加并覆盖# 全局node18, python3.11 # 项目node20, go1.21 # 结果node20, python3.11, go1.21工具策略[tool_config]只作用于声明在同一个 config root 下的工具不会合并进调用级全局设置[tool_config] locked true环境变量[env]叠加并覆盖# 全局NODE_ENVdevelopment # 项目NODE_ENVproduction, API_URLlocalhost # 结果NODE_ENVproduction, API_URLlocalhost任务[tasks]更具体的命令定义替换较早的命令# 全局[tasks.test] npm test # 项目[tasks.test] yarn test # 结果yarn test仅含元数据的任务定义可以叠加在已有任务之上而不替换其命令。被 include 的任务文件与 file tasks 有额外的合并规则参见 task_config.includes。任务定义的分层解析逻辑在 src/config/mod.rs 中有对应实现按从高到低优先级解析任务定义层。设置[settings]叠加并覆盖# 全局experimental true # 项目jobs 4 # 结果experimental true, jobs 4提示运行mise config可以看到 mise 按优先级顺序加载了哪些文件。写操作的目标文件当mise use、mise set、mise unset等命令需要写入配置文件时它们使用最高优先级目录中最低优先级的文件。这意味着如果mise.toml和mise.local.toml同时存在写入mise.toml如果mise.toml和mise.production.toml同时存在写入mise.toml如果只存在mise.local.toml则写入mise.local.toml这个行为保证默认更新共享配置mise.toml而本地覆盖mise.local.toml与环境特定配置保持不动除非显式指定。# 同时存在 mise.toml 与 mise.local.toml 时 $ mise use node22 # 写入 mise.toml $ mise use --env local node20 # 写入 mise.local.toml $ mise set NODE_ENVproduction # 写入 mise.toml其他命令的文件选择方式不同mise config get与mise config set默认选择已加载 TOML 文件中优先级最高者可能是mise.local.toml。可用--file显式选择现有的项目文件。mise unuse默认选择第一个声明了任一请求工具且已加载的配置。带版本限定的参数匹配字面配置请求node20匹配node 20而不匹配node 20.0.0。可用--path选择文件。这个写最低优先级文件的实现在first_config_file()中它过滤掉conf.d片段不可写入优先选择非.tool-versions的可写文件仅当没有其他选择时才退回.tool-versions见 src/config/mod.rs。这确保mise use之类命令写入mise.toml而非mise.local.toml或.tool-versions。mise.toml各配置段详解[tools]—— 开发工具工具配置的详细说明见 Tools。除指定版本外每个工具条目还可以包含选项os限制在特定操作系统上安装depends仅在此配置内相对其他工具的安装顺序vfox 插件的 hook 依赖应放在插件metadata.lua中见 Tool Dependenciesinstall_env下载、安装及工具级postinstall期间使用的环境变量postinstall该工具安装完成后运行的命令示例[tools] node { version 22, postinstall corepack enable }[tool_config]—— config root 范围内的工具策略[tool_config]将策略应用于共享同一 config root 的配置所声明的工具。例如mise.local.toml中的策略也会作用于旁边的mise.toml中的工具但不会影响继承自全局、系统或父配置 root 的工具。[tool_config] locked true [tools] node 24目前locked是唯一支持的策略。它要求该配置 root 的工具从 lockfile 解析并安装。参见 mise.lock。[env]—— 任意环境变量详见 environments。[vars]—— 配置变量定义可在 Tera 渲染的配置中复用、但不会导出给子进程的值。详见 Variables。[tasks.*]—— 运行文件或 shell 脚本详见 Tasks。[settings]—— mise 设置完整设置列表见 Settings。[plugins]—— 指定自定义插件仓库 URL用[plugins]添加或修改插件短名。它只影响新的插件安装已有插件可以使用任何 URL。[plugins] elixir https://github.com/my-org/mise-elixir.git node https://github.com/my-org/mise-node.git#DEADBEEF # 支持指定 gitref vfox-backend:myplugin https://github.com/jdx/vfox-npm插件类型前缀如asdf:、vfox:或vfox-backend:是可选的。如果省略mise 先克隆插件然后从已安装的插件文件检测插件类型。如需一次性从特定 URL 安装插件可用mise plugin install NAME GIT_URL。当你想与项目中的其他开发者共享插件位置与修订版本时就把这一节加到mise.toml中。也支持本地插件目录。绝对路径与~/开头的路径直接使用。以./或../开头的显式相对路径相对于声明它们的文件的 config root 解析[plugins] example ./plugins/mise-example本地插件会被符号链接进 mise 的插件目录等同于mise plugins link因此源目录的改动立即可见。与远程条目一样[plugins]只影响新安装。运行mise plugins install --force NAME可用配置的本地源替换已有插件。file://源仍然是 Git 仓库会被克隆。这取代了已弃用的settings.shorthands_file/MISE_SHORTHANDS_FILE机制把同样的shortname backend-or-url条目放在[plugins]下而不是放在单独的 TOML 文件中。[tool_alias]—— 工具版本别名[alias]已更名为[tool_alias]以区别于[shell_alias]。旧键[alias]仍可用但已弃用。下面使mise install nodemy_custom_node安装 node-20.x。别名也可以直接在插件中指定。[tool_alias.node.versions] my_custom_node 20[shell_alias]—— shell 别名定义进入目录时设置、离开目录时取消的 shell 别名[shell_alias] ll ls -la gs git status dev npm run dev它们与环境变量类似——基于当前目录动态设置。详见 Shell Aliases。最小 mise 版本指定配置文件要求的最小 mise 版本。可以设置硬性最小版本不满足则报错或软性最小版本警告并继续# 要求此版本或更新 min_version 2024.11.1或指定硬性最小版本与更新的推荐版本min_version { hard 2024.11.1, soft 2026.1.0 }当软性最小版本不满足时mise 打印警告并在可用时给出自我更新指引硬性最小版本不满足时mise 报错并显示自我更新指引。对项目必需的语法或行为用硬性最小版本。软性最小版本推荐升级同时允许旧客户端继续使用。纯软性要求也有效min_version { soft 2026.1.0 }。保持 mise 更新让后端集成与弃用通知保持最新。最小版本让队友在不改动项目要求的情况下升级。Monorepo 根将配置文件标记为 monorepo 根可为任务启用目标路径语法。monorepo_root true [monorepo] config_roots [projects/frontend, projects/api]monorepo_root启用任务寻址config_roots标识要加载的项目。启用后子目录中的任务可通过命名空间路径使用如//projects/frontend:build子目录任务使用父配置中的工具任务仅在需要时加载如运行时或mise tasks ls --all时信任一个 monorepo 根可让后代配置共享该信任信任前请审查仓库见 trust 行为详细用法与示例见 Monorepo Tasks。mise.tomlschemamise.toml的 JSON schema 位于 schema/mise.json本文档所在仓库的实际路径。部分编辑器可自动加载它在编辑mise.toml时提供自动补全与校验。被 include 的任务见 task configuration使用单独的 schemaschema/mise-task.json。仓库中还提供了 schema/mise-settings.json、schema/mise-registry-tool.json、schema/mise.plugin.json 与 schema/miserc.json 等配套 schema覆盖设置、registry 工具、插件与交互配置。全局配置~/.config/mise/config.tomlmise 可以在~/.config/mise/config.toml中配置。它像本地mise.toml一样工作但适用于每个目录。这里只展示几个常用设置。完整列表与说明见 Settings。[tools] # 全局工具版本写在这里 # 可用 mise use -g 设置 node lts python [3.10, 3.11] [settings] # 读取其他版本管理器使用的版本文件如 .nvmrc idiomatic_version_file_enable_tools [node] trusted_config_paths [ ~/work/my-trusted-projects, ] env_file .env # 从 dotenv 文件加载环境变量见 MISE_ENV_FILE [settings.status] show_env false show_tools false # _ 是特殊键用于放置 mise 永不解析的信息 [_] foo bar系统配置/etc/mise/config.toml与~/.config/mise/config.toml类似但应用于系统上的所有用户。适合设置系统级默认值。.tool-versions—— asdf 兼容配置.tool-versions是 asdf 的配置文件mise 可以像使用mise.toml一样使用它。它不够灵活因此推荐使用mise.toml。如果你已有很多.tool-versions文件或与使用 asdf 的团队协作它会很有用。以下是支持全部语法的示例node 20.0.0 # 允许注释 ruby 3 # 可以是模糊版本 shellcheck latest # 也支持 latest jq 1.6 erlang ref:master # 从 vcs ref 编译 go prefix:1.19 # 使用最新的 1.19.x 版本——在 1.19 恰为精确匹配时需要 shfmt path:./shfmt # 使用自定义运行时 node lts # 使用 node 的 lts 版本并非所有插件都支持 node sub-2:lts # 从解析出的主版本号减 2如 20 变为 18 python sub-0.1:latest # 从解析出的次版本号减 1如 3.11 变为 3.10作用域Scopesmise.toml和.tool-versions都支持作用域它修改版本解析方式ref:SHA—— 从 vcs通常为 gitref 编译。prefix:PREFIX—— 使用匹配该前缀的最新版本。对 Go 有用因为1.20只精确匹配1.20而prefix:1.20匹配1.20.1、1.20.2等。path:PATH—— 使用给定路径的自定义编译版本。一个用例是复用 Homebrew 工具如path:/opt/homebrew/opt/node20。在 Windows 上两种分隔符都可用mise 无论如何都存储正斜杠形式但要注意 TOML 引号反斜杠在_基本_双引号字符串中是转义符所以{ path C:\tools\node }应写成字面量字符串或写成C:\\tools\\node。C:\tools\node不会被拒绝——TOML 会把\t读成制表符——所以路径会悄悄变成别的。包含cmd.exe元字符 | ^ %的路径会被拒绝因为该路径会传给构建 shell 命令的工具插件其中%尤其不是字面量。sub-PARTIAL_VERSION:ORIG_VERSION—— 解析ORIG_VERSION将PARTIAL_VERSION中的数字分量从对应解析结果分量中减去再把结果作为版本前缀解析。例如sub-2:lts解析lts并从其主版本分量减 220变为18sub-0.1:latest从解析出的次版本分量减 13.11变为3.10。这是数字版本运算不是请求倒数第 N 个发布版。Idiomatic version files惯例版本文件mise 与 asdf 一样支持idiomatic version files即.node-version、.python-version这类语言特定文件。它们非常适合在不强迫其他开发者使用 mise 或 asdf 等特定工具的情况下设置项目运行时版本。它们支持别名因此内容为lts/hydrogen的.nvmrc在 mise 和 nvm 中都能工作。部分受支持的 idiomatic version files插件Idiomatic 文件atmos.atmos-versionbun.bun-version,package.jsonchezmoi.chezmoiversioncmakeCMakeLists.txtcrystal.crystal-versiondaggerdagger.jsondeno.deno-version,package.jsondotnetglobal.jsonearthlyEarthfileelixir.exenv-versiongo.go-version,go.modgolangci-lint.golangci.yml,.golangci.yaml,.golangci.toml,.golangci.jsongoreleaser.config/goreleaser.yml,.config/goreleaser.yaml,.goreleaser.yml,.goreleaser.yaml,goreleaser.yml,goreleaser.yamljava.java-version,.sdkmanrclefthooklefthook.yml,lefthook.yaml,.lefthook.yml,.lefthook.yaml,lefthook.toml,.lefthook.toml,lefthook.json,.lefthook.json,lefthook.jsonc,.lefthook.jsonc,.config/lefthook.yml,.config/lefthook.yaml,.config/lefthook.toml,.config/lefthook.json,.config/lefthook.jsoncnode.nvmrc,.node-version,package.jsonnpmpackage.jsonopentofu.opentofu-versionpacker.packer-versionperl.perl-versionpixipixi.toml,pyproject.tomlpnpmpackage.jsonpre-commit.pre-commit-config.yamlpython.python-version,.python-versionsruby.ruby-version,Gemfileruffruff.toml,.ruff.tomlrustrust-toolchain.tomlswift.swift-versiontaskTaskfile.yml,Taskfile.yaml,taskfile.yml,taskfile.yamlterraform.terraform-versionterragrunt.terragrunt-versionterramate.terramate-versionyarn.yvmrc,package.jsonzig.zig-versionRegistry 支持的工具还可以描述 mise 应如何从结构化 idiomatic 文件中提取版本。Registry 条目可以使用与 HTTP backend 相同的version_regex、version_json_path和version_expr解析器。这让通过aqua:、github:等 backend 安装的工具无需 asdf 或 vfox 插件即可支持 JSON manifest 及其他工具特定版本文件。mise 读取哪些字段idiomatic version file 只为声明项目构建所用版本的字段而被读取。声明最小兼容版本的字段——即项目消费者的下限——不是版本请求mise 不会据此安装。下限并不能说明项目实际开发和测试所用的版本一个仍支持 Node 18 或 CMake 3.25 的库几乎肯定不是用它们构建的把下限解析为版本要么把所有人钉在最早的支持版本上要么按范围读取就变成了latest。配置格式的主版本号不同仍会被读取GoReleaser 配置中的version: 2是刻意与 CLI 主版本绑定的 schema 选择器而非兼容性下限因此它会选择最新的 GoReleaser 2.x。警告mise 曾把两种下限当作版本请求。两者均已弃用在解析出版本时会警告并将在 mise 2026.11.0 中移除go.mod的go X.Y指令在go.mod中添加toolchain goX.Y.Z行或改用.go-version或mise.toml和CMakeLists.txt的cmake_minimum_required改用mise.toml。已迁移的项目可以在此之前选择最终行为——忽略下限、不再警告mise settings set idiomatic_version_file_ignore_minimum_versions true该设置与它所保护的行为一起在 2026.11.0 中移除。对于package.jsonnode、deno、bun、npm、pnpm、yarn支持运行时工具node、deno、bun读取devEngines.runtime单对象与数组格式都支持。包管理器npm、pnpm、yarn读取devEngines.packageManager或顶层packageManager如pnpm9.1.0或npm10.0.0。对bunmise 先检查devEngines.runtime回退到devEngines.packageManager与顶层packageManager如bun1.2.0。engines字段不被读取这是上述规则最清晰的案例。engines声明包_兼容_的 Node 版本范围——npm 用它在他人在不支持的运行时上安装该包时警告或失败。它是对消费者的陈述而且通常是宽泛的范围18没人会针对它开发。npm 正是为了填补这个缺口才加入devEngines它陈述项目开发者自己使用的版本这正是 mise 需要的。如果你只有engines请显式钉住真实版本mise use node22对go.mod使用toolchain goX.Y.Z指令——模块构建和测试所用工具链的精确钉定。go X.Y指令是最小值已弃用见上文。启用 idiomatic version files在 mise 中这些文件默认禁用。运行mise settings add idiomatic_version_file_enable_tools python为特定工具如 Python启用文档见 idiomatic_version_file_enable_tools。单个文件可以用tool:filename对为某工具禁用。例如为 node 使用.nvmrc同时让package.json继续供包管理器使用mise settings add idiomatic_version_file_disable_files node:package.json发现和解析这些文件有少量性能开销。Registry 解析器在进程内运行插件提供的文件可能调用插件的解析器。结果会被缓存所以通常感觉不到。asdf 称这些为 legacy version files。mise 用 idiomatic version files 来区分语言与生态惯例和 mise 自身的配置。Settings 与 Tasks完整设置列表见 Settings任务的全部配置选项见 Tasks。通过环境变量配置 mise提示mise 的大多数环境变量设置的是 settings因此记录在那里。下面列出的环境变量不是 settings。mise 中的 setting 通常既可以用环境变量配置也可以在配置文件中设置。mise 也可以通过环境变量配置。可用选项如下MISE_DATA_DIR默认Linux/macOS~/.local/share/mise或$XDG_DATA_HOME/mise默认Windows%LOCALAPPDATA%\mise或$XDG_DATA_HOME/misemise 存储插件与工具安装的目录。不应跨机器共享。MISE_CACHE_DIR默认Linux~/.cache/mise或$XDG_CACHE_HOME/mise默认macOS~/Library/Caches/mise或$XDG_CACHE_HOME/mise默认Windows%TEMP%\mise或$XDG_CACHE_HOME/misemise 存储内部缓存的目录。不应跨机器共享可在 mise 未运行时删除。MISE_TMP_DIR默认Ruststd::env::temp_dir()的实现。用于临时存储例如安装工具时。MISE_SYSTEM_CONFIG_DIR默认/etc/misemise 存储系统级配置的目录。MISE_SYSTEM_DIR也作为旧别名受支持。MISE_GLOBAL_CONFIG_FILE默认$MISE_CONFIG_DIR/config.toml通常是~/.config/mise/config.toml全局配置文件的路径。当你想让从$HOME发起的mise use或mise set等全局写入指向不同配置文件时使用它。MISE_DEFAULT_CONFIG_FILENAME定制默认本地配置文件名而不是全局配置路径。MISE_DEFAULT_CONFIG_FILENAME默认mise.toml定制 mise 创建或查找项目配置文件时使用的默认本地配置文件名。e2e 测试 test_config_create_with_filename 验证了该变量设置MISE_DEFAULT_CONFIG_FILENAMEmise.config.toml后执行mise use tinymise config输出会包含mise.config.toml。MISE_GLOBAL_CONFIG_ROOT默认$HOME作为全局配置文件{{config_root}}使用的路径。MISE_ENV_FILE设置为文件名以从 dotenv 文件读取环境变量如MISE_ENV_FILE.env。mise 会在当前目录及其父目录中搜索并加载所有匹配的文件。底层使用 dotenvy。MISE_${TOOL}_VERSION为工具设置版本。例如MISE_NODE_VERSION20将使用 node20.x无论mise.toml/.tool-versions中设置了什么。MISE_TRUSTED_CONFIG_PATHSmise 自动标记为受信任的路径列表。按平台 PATH 约定分隔Unix 用:Windows 用;。MISE_CEILING_PATHSmise 停止搜索配置文件与 file tasks 的路径列表。用于避免 mise 搜索加载缓慢的目录。按平台 PATH 约定分隔Unix 用:Windows 用;。它直接参与目录层级发现all_dirs()会把该值传给file::all_dirs()作为搜索上限见 src/config/mod.rs。MISE_LOG_LEVELtrace|debug|info|warn|error设置 mise 日志输出的详细程度。也可以使用MISE_DEBUG1、MISE_TRACE1、MISE_QUIET1以及--log-leveltrace|debug|info|warn|error。MISE_LOG_FILE~/mise.log将日志输出到文件。MISE_LOG_FILE_LEVELtrace|debug|info|warn|error与MISE_LOG_LEVEL相同但针对日志_文件_。想存储日志又不弄乱显示时很有用。MISE_LOG_HTTP1在日志中显示 HTTP 请求/响应。MISE_LOG_VERBOSE_DEPS1来自嘈杂第三方 crateh2、hyper、reqwest、rustls等它们每个 HTTP/2 帧或 socket 读取都会输出一行的 debug/trace 日志总是被丢弃——否则它们会淹没 debug/trace 输出。设为1让这些日志通过这是看到它们的唯一方式包括在--log-leveltrace/-vv下。MISE_QUIET1等价于MISE_LOG_LEVELwarn。MISE_HTTP_TIMEOUT设置 HTTP 请求超时秒。默认30。MISE_RAW1设为 1 让插件脚本直接连接 stdin/stdout/stderr。默认禁用 stdin因为多个插件并行安装时你看不到提示。当插件接受输入或看起来安装不正常时使用它。这也会设置MISE_JOBS1因为同一时间只能运行一个插件脚本。MISE_TERM_WIDTH覆盖 mise 渲染表格与列表如mise ls所用的终端宽度。默认 mise 从终端检测宽度。这在 CI 或其他非交互环境中很有用那里检测会返回异常值例如 CircleCI 报告宽度为0产生奇怪的换行输出。MISE_TERM_WIDTH未设置时mise 回退到常规的COLUMNS环境变量最后才自动检测。覆盖值会被精确遵守所以也可以强制更窄的宽度MISE_TERM_WIDTH120 mise lsMISE_FISH_AUTO_ACTIVATE1控制 fish 的vendor_conf.d脚本是否自动激活 mise。Homebrew 及其他一些安装方式用该文件在无需任何配置的情况下激活 mise。默认启用设为 0 禁用。实战小结把配置体系组合起来一个典型的完整工作流是在~/.config/mise/config.toml中放个人默认工具与idiomatic_version_file_enable_tools等设置项目根放mise.toml声明团队共享的工具、环境变量与任务mise.local.tomlgit 忽略放个人本地覆盖用mise.development.toml/mise.production.toml区分环境用conf.d/片段按字母序组合模块化配置最后用mise config校验实际加载顺序、mise ls --current确认工具版本。涉及任务寻址时可在 monorepo 根开启monorepo_root与config_roots以启用//projects/frontend:build形式的命名空间路径。整个过程的所有规则都能在 src/config/mod.rs 的LOCAL_CONFIG_FILENAMES、env_config_patterns与first_config_file等实现中找到一一对应的依据。【免费下载链接】misedev tools, env vars, task runner项目地址: https://gitcode.com/GitHub_Trending/mi/mise创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门