在 Docker 容器内开发时启用 VS Code IntelliSense

Posted

技术标签:

【中文标题】在 Docker 容器内开发时启用 VS Code IntelliSense【英文标题】:VS Code IntelliSense enabled when developing inside a Docker container 【发布时间】:2018-04-24 04:45:09 【问题描述】:

我想知道在本地安装所有依赖项的 Docker 容器中进行开发时是否可以启用 VS Code IntelliSense?

【问题讨论】:

我想知道你找到答案了吗? Install node_modules inside Docker container and synchronize them with host的可能重复 【参考方案1】:

VS Code 最近推出了Visual Studio Code Remote - Containers extension:

Visual Studio Code Remote - Containers 扩展允许您将 Docker 容器用作功能齐全的开发环境。它允许您打开容器内(或安装到)容器中的任何文件夹,并利用 Visual Studio Code 的完整功能集。

但最重要的是您的用例:

这让 VS Code 可以提供本地质量的开发体验——包括完整的 IntelliSense(完成)、代码导航和调试——无论您的工具(或代码)位于何处。

我制作了一个截屏视频,显示:

    该项目通过 VS Code 本身安装在 Docker 容器中 一个 npm 包 ramda.js 从正在运行的容器中安装 即使软件包已安装在容器中,VS Code IntelliSense 也能够提出建议。

这里是项目根目录下的相关配置文件.devcontainer.json


  "name": "My Project",
  "image": "node:12-alpine"

【讨论】:

我的结果好坏参半。您的容器是否将 node_modules 挂载为卷?如果在 VScode 资源管理器中展开node_modules,子文件夹是否可见? @defraggled VS Code 会自动将根文件夹挂载到容器中,并在容器中(而不是主机上)打开一个 shell,所以无论你在那里做什么都会反映在主机上。

以上是关于在 Docker 容器内开发时启用 VS Code IntelliSense的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Docker 容器中运行 VS Code 的扩展开发主机来测试我的 vscode 扩展?

VS Code 没有为在 Docker 容器中运行的 Node 应用程序打断点

使用 VS Code 调试在 Docker 容器中使用 ts-node 运行的 TypeScript 应用程序时,如何能够正确设置断点?

如何使用 VS Code 在 Docker 容器中远程调试 python 代码

Docker+VS Code=EOS新玩法 | 大狗教你EOS开发

vs code使用docker调试程序