【问题标题】:Can rust-toolchain.toml be a development environment descriptorrust-toolchain.toml 可以是开发环境描述符吗
【发布时间】:2021-08-31 18:24:12
【问题描述】:

目前,rust-toolchain.toml 允许指定开发通道、目标平台和相关工具(编译器、打包器)等。不幸的是,接受附加工具的components 键不符合cargo-watch 的规定和trunk(WASM 板条箱的货物替代品)。作为一个新手,他们的拒绝似乎很奇怪。它们的排除限制了 rust-toolchain.toml 的惊人实用性,以自动化开发环境的工具。

问题是,我错过了什么吗?有没有办法将这些工具集成到 rust-toolchain.toml 中,是否有其他方法可以指定它们(除了 shell 脚本),还是它们是多余的?

目前我手动安装它们:cargo install watch trunk。是的,这很容易和简单,但也没有记录、容易忘记和笨拙。

我必须说,rust 它的工具令人印象深刻。

【问题讨论】:

  • 你知道有这样的语言平台吗?这听起来像是一个通用的第三方工具安装步骤,但开发环境的必要部分可能非常多样化:ide、扩展、插件、脚本、系统库、凭证管理器。也许有一种机制可以自动安装cargo install-able 程序列表,但我怀疑它会比这更进一步。根据我的经验,这类东西仍然通常通过make 文件处理。
  • Visual Studio 实际上相当全面。 rust-toolchain.toml 主持工具和其他可用工具箱之间的区别似乎很软。无论如何,这种区别最终对开发人员来说是不可见的,并且由于这些工具位于crates.io 中并且可以像其他工具一样安装,也许出于安全原因需要通知它们应该包含在内。但是,我是新手,可能有一些微妙的原因。

标签: rust development-environment toolchain rustup


【解决方案1】:

据我所知,components 键专门用于工具链内部组件。这些组件也是特定于工具链的,例如rustup +stable component add rust-srcrustup +nightly component add rust-src 不同。

另一方面,来自 crates.io 的 crates(cargo install 可以安装)本质上是独立于工具链的。所以对我来说,rust-toolchain.toml 文件通常不能指定 crates 是有道理的,这更多是关于将工具链固定到特定版本。

但是,特别是关于 cargo 插件,也许你会找到一种令人信服的方式来将此作为 cargo 的新功能(例如,允许在 config.toml 中指定 cargo 插件)。

【讨论】:

    【解决方案2】:

    不,rust-toolchain.tomlcomponents 是由 Rust 语言团队开发和分发的 specific set of tools。它仅用于扩充内置的cargo 命令。

    【讨论】:

    • cargo watch -x check,其中watch实际上是一个无法在rust-toolchain.toml中指定的板条箱。这相当令人困惑,尤其是因为 watch 似乎是任何工具的基本增强(和概念)。
    • 我知道cargo watch,它是一个第三方子命令。它不是由语言团队提供的,因此不会在rust-toolchain.toml 中考虑。将其称为必不可少的是意见,我不会在任何工作流程中使用它。
    猜你喜欢
    • 1970-01-01
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    相关资源
    最近更新 更多