Rust是不是没办法离线开发?
作者:卡卷网发布时间:2024-11-30 16:01浏览数量:114次评论数量:0次
我们开发团队遇到过类似的问题:
因为公司有防火墙,只准许你看网页、查资料,但是不准许开发工具(vscode)联网......
我们从别处构建了一个包含所有 Cargo 依赖项的 docker 镜像,然后部署到这个 “没网” 的开发环境中。
结果使用 vscode 的时候,报 rust-analyzer failed to load workspace: xxxx
除了这种从一开始就没网的,还有一种情况:
有网时一切正常,一但断网(甚至网络不好,比如在地铁、高铁上),这时运行 rust-analyzer 的时候就会报 Failed to run "cargo"、"metadata"......
具体报错记不清了,大致如此吧。
当时查了一些资料,因为比较久远了,所以只能给你提供一些思路和关键字:
rust-analyzer 本身不需要联网,但它在加载 workspace 的时候会要求 cargo 提供 metadata,而 cargo 默认需要从 registry server 上下载 crates,你过不了 cargo check,那就啥也干不成......
这时,你可以自己搞个 crates mirror,可以参考这篇:Dissecting Crates.io: Bare Minimum Mirror
或者弄一套 local-registry,可以参考这个:GitHub - dhovart/cargo-local-registry: A cargo subcommand to manage local registries
再不济,直接 hack 掉 Cargo.lock,可以参考这个:https://github.com/oconnor663/dotfiles/blob/master/bin/makelockfile
我们当时的方法是:
- 在终端中执行 cargo check --all-targets --offline(细心的话,你会发现上面那个 hack 方法的作者在注释里也提到了);
- 或者在 .cargo/config.toml 中添加 offline:
很多细节记不清了,后来我也没参与过 rust 项目,所以仅供参考。
理论上,方法总是比困难多的,别灰心~
END
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:有哪些好用的浏览器推荐?
- 下一篇:Selenium如何提高效率?
相关推荐
最新文章
随机文章
广告位

你 发表评论:
欢迎