主要观点:开始新生态系统可能困难,使用 Nix 可使解决方案可重现,作者在使用 Nix Flake 设置 Rust 和 WebAssembly 开发环境时遇到诸多问题并解决。
关键信息:
- 安装依赖需 Rust 工具链、wasm-pack 和 npm,Nix 下依赖安装应较易,但构建 wasm-pack 模板项目时 WebAssembly 部分失败,因 Rust 工具链由 Nix 管理而非 Rustup 直接,需手动安装 wasm32-unknown-unknown 目标。
- 解决 WebAssembly 链接问题,作者不喜欢修改 Cargo 配置,而是在开发环境中修改 Cargo 环境变量,添加 llvmPackages.bintools 并设置 CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_LINKER 为 lld。
- 最后为提升生活质量,添加编辑器集成,通过添加 nodePackages.typescript-language-server 和 vscode-langservers-extracted 进行修改,需配置编辑器以检测和集成语言服务器。
重要细节: - 给出设置开发环境的 Nix Flake 代码示例,包括不同阶段的修改,如安装依赖、处理链接问题、编辑器集成等。
- 提供直接使用模板开始新项目的步骤,包括创建目录、初始化 Flake、初始化 Git、进入开发环境、构建 wasm 等,并给出修改项目名称的方法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。