如何在 WSL 和 Windows10 中组织编程语言和库

How to organize programming languages and libraries in WSL and Windows10

如何避免在 WSL 和 Windows10 中安装相同的编程语言?

我正在考虑将 WSL 用作开发工作区。但是,我意识到我需要在 WSL 中安装 Node.js、Python、create-react-app 等,即使我的 windows 10 已经安装了它们。

如果你能给我一些建议会很有帮助。

谢谢。

在某种程度上,这取决于您正在进行的开发类型。鉴于您的示例 languages/tools,我将假设您的大部分开发与平台、网络开发等无关

我的建议是全力使用 WSL 并安装您使用的工具的 Linux 版本(下面介绍了一些值得注意的例外情况)。

建议卸载 Windows 版本,但并非绝对必要。我建议卸载,因为我继续在 Stack 站点上看到许多问题,在这些站点上很明显,Windows 版本的 Node 或 Python 正在从 WSL 内部调用。很可能某些工具,例如 nvm 或等效工具,试图将 Windows 节点或 Python 位置添加到 Linux 路径。

这会导致问题,因为 Windows 版本的 Node 和 Python 理解 Windows 路径和进程。当您从 WSL 中的 Linux shell 调用它们时,shell/OS 当然会使用 Linux 版本。而 Windows Python 就不会理解 /mnt/c/Projects 这样的东西。它需要 C:\Projects。您 可以 使用 wslpath 等实用程序(自动安装在某些 WSL 发行版中,可安装在所有其他发行版中)来解决此问题,或者您可以手动调整路径。但是...如果不需要,为什么要经历这些麻烦。

只需使用 Linux 版本,以及相应的 Linux 路径和说明。大多数开发工具、教程、说明等都将“默认”为 Linux 文档。它通常会更完整、更新等。

当然,Linux 命令行体验(主观上,肯定)远远优于 PowerShell。不要误会我的意思,我喜欢 PowerShell,但是当我通过 WSL(powershell.exepwsh.exe)调用它时,我更喜欢 PowerShell,因为我可以利用 Linux 这样的优点less(或 bat)、jq 和许多其他。

并不是说没有您必须习惯的 WSL 警告。准备好 运行 在这里和那里遇到一些障碍(缺少 Systemd 支持、权限、文件系统、inotify),但大多数事情都有解决方法,您通常可以在 Stack 上找到(Stack Overflow,Ask Ubuntu, Unix & Linux, and/or 超级用户) 如果你搜索。

对于我提到的那些“值得注意的例外”,我建议安装:

  • Windows 终端(可在 Microsoft Store 购买),将为 WSL 提供升级的终端体验。

  • Windows 版本的 Visual Studio 代码 -- 我看到这里有人试图安装 Linux 版本的问题。只是没有必要。 Microsoft 在将 VSCode 的 Windows 版本与 WSL 集成方面做得很好。只需安装“远程开发”扩展包,其中包括“远程 - WSL”扩展。