创建 docker 镜像以封装 vscode 编辑器及其设置,以提供一致的开发体验。每次执行镜像以创建容器并启动编辑器(首次)时,屏幕右下角都会出现此通知:“允许 Microsoft 收集使用数据,帮助改进 VS Code。阅读我们的隐私声明并了解如何选择加入。“ 我想禁用此通知的生成。
到目前为止,已经尝试使用 settings.json 中包含的以下键值对来静音通知,但它仍然出现:
"telemetry.enableTelemetry": false,
"editor.parameterHints": false,
在扫描 vscode github 源代码时,模块通过键“workbench.telemetryOptOutShown”控制通知的外观,其类型为布尔值。此键值对存储在名为“file__0.localstorage”的文件中,该文件位于首次运行 vscode 时创建的目录“~/.config/Code/Local Storage”中。进一步的代码检查发现仅在“StorageScope.GLOBAL”中搜索该键。认为也许更新 settings.json 文件,因为这些设置是全球的对于用户来说,可能允许控制“workbench.telemetryOptOutShown”。此键的值为真的已通过 vscode 添加到“用户设置”。尽管 vscode 生成错误,指出此键是无效的配置设置,但我还是尝试了。正如错误消息所预期的那样,添加此键值对并没有使通知静音。
虽然可以在生成 Docker 镜像时通过使用“file__0.localstorage”的副本来解决此问题,但出于多种原因,我宁愿避免使用这种技术。
答案1
以下是如何完成的vscodium/undo_telemetry.sh
# dc.services.visualstudio.com
# vortex.data.microsoft.com
TELEMETRY_URLS="(dc\.services\.visualstudio\.com)|(vortex\.data\.microsoft\.com)"
REPLACEMENT="s/$TELEMETRY_URLS/0\.0\.0\.0/g"
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
grep -rl --exclude-dir=.git -E $TELEMETRY_URLS . | xargs sed -i '' -E $REPLACEMENT
else
grep -rl --exclude-dir=.git -E $TELEMETRY_URLS . | xargs sed -i -E $REPLACEMENT
fi
为了在没有遥测的情况下提供一致的类似 VSCode 的开发体验,我会尝试切换到 VSCodium,它的存在的理由包括禁用它。
引用他们的话README.md
:
VSCodium
VSCode 的免费/自由开源软件二进制文件
这不是分支。这是一个脚本存储库,用于使用社区驱动的默认配置自动将 Microsoft 的 vscode 存储库构建为自由许可的二进制文件。
截至 2019 年 9 月,它可能有一些问题具有自动更新功能,但为了保持一致性,我觉得首先应该禁用这些更新。
自 4 月起,VSCodium 也可用的采用可移植的跨平台 AppImage 格式,因此在更新一组开发人员共享的标准环境之前,应该可以轻松地在版本之间来回切换并对新版本进行彻底的测试。