【问题标题】:How to get host operating system name from visual studio code extension?如何从 Visual Studio 代码扩展中获取主机操作系统名称?
【发布时间】:2021-01-01 01:52:59
【问题描述】:

在我的扩展程序中,我必须根据主机操作系统调用函数,我如何获取有关主机操作系统的信息?

【问题讨论】:

  • 从对VSCode API 的简要介绍来看,它似乎旨在用作跨平台API,因此理想情况下不需要进行这种区分。您是否缺少任何特定功能?
  • 这与我之前的帖子stackoverflow.com/questions/50983314/…有关,我使用VS Extension打开终端并发送一些shell命令。有些操作系统之间略有不同。

标签: visual-studio-code


【解决方案1】:

在 Windows 上

process.platform==='win32'

是的,在我的 64 位 Windows 11 上仍然如此。

在 MacO 上

process.platform==='darwin'

在 Linux Mint 上

process.platform==='linux'

在我的 wsl/ubuntu 安装中

process.platform==='linux'

(.. 将 wsl 与完整的 linux 操作系统区分开来也很好)

无需导入/要求process。

【讨论】:

    【解决方案2】:

    您还可以使用来自 node.js 的 os 包。见os.type:

    const os = require('os'); 或 import 它

    返回由 uname(3) 返回的操作系统名称。为了 例如,它在 Linux 上返回 Linux,在 macOS 上返回 Darwin,以及 Windows_NT 在 Windows 上。

    我认为您不需要单独安装 os 包 - 它会自动提供给扩展作者。

    【讨论】:

      【解决方案3】:

      这是what I did for my extension,它不是最强大的解决方案,但对于我的目的来说效果很好:

      import { env } from 'vscode';
      
      const isWindows = () => Boolean(env.appRoot && env.appRoot[0] !== "/");
      

      理由是所有类 UNIX 操作系统都有一个以 / 开头的根目录,而基于 Windows 的安装将具有类似 C: 的东西。

      如果您不介意过度依赖 Node 内部,请改用you can use process.platform。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-15
        • 2011-06-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多