如何构建Code OSS(MIT协议版VS Code)的便携版本?
构建便携版Code OSS的实现方案
Code OSS本身没有官方提供的便携构建流程,但可以通过改造编译产物或调整编译配置来实现和官方VS Code便携版相同的效果,以下分平台说明具体操作:
Windows平台
- 按照常规流程完成Code OSS编译,找到输出的可执行文件目录(通常为
out\win32-x64或对应架构的子目录)。 - 在该目录下创建一个空的
data文件夹——Code OSS会自动识别这个目录,并将用户配置、插件、缓存等数据全部存储到这里,无需额外参数即可实现便携。 - (可选)如果希望编译时直接内置便携路径,可修改项目根目录的
product.json,添加或调整以下配置:
修改后再执行编译,产出的版本会默认使用上述相对路径存储数据。"userDataDir": "./data/user-data", "extensionsDir": "./data/extensions"
Linux平台
- 编译完成后,拿到解压后的Code OSS文件夹(如
code-oss-linux-x64)或AppImage包。 - 若使用解压后的文件夹:
- 在文件夹同级目录创建
data文件夹,再创建启动脚本start-portable.sh:#!/bin/bash DIR=$(dirname "$0") mkdir -p "$DIR/data/user-data" "$DIR/data/extensions" "$DIR/code-oss-linux-x64/code-oss" --user-data-dir="$DIR/data/user-data" --extensions-dir="$DIR/data/extensions" - 给脚本添加执行权限:
chmod +x start-portable.sh,后续通过该脚本启动即可进入便携模式。
- 在文件夹同级目录创建
- 若使用AppImage:
- 先执行
./code-oss-*.AppImage --appimage-extract解压出文件系统,再按上述解压文件夹的方法改造,最后可重新打包为自定义AppImage(需使用appimagetool工具)。
- 先执行
macOS平台
- 编译得到
Code OSS.app应用包后,右键选择「显示包内容」,进入Contents/MacOS目录。 - 创建启动脚本
start-portable.sh:#!/bin/bash DIR=$(dirname "$0") APP_ROOT=$(realpath "$DIR/../..") DATA_DIR="$APP_ROOT/../data" mkdir -p "$DATA_DIR/user-data" "$DATA_DIR/extensions" "$DIR/Electron" --user-data-dir="$DATA_DIR/user-data" --extensions-dir="$DATA_DIR/extensions" - 给脚本添加执行权限:
chmod +x start-portable.sh,通过该脚本启动应用即可实现便携。注意:macOS的沙箱机制可能会限制应用访问外部
data目录,若遇到权限问题,可将data文件夹移入Code OSS.app包内(如Contents/Resources/data),并修改脚本中的路径为相对路径。
通用优化提示
- 若希望所有编译产出默认都是便携版,可修改
src/vs/platform/environment/common/environment.ts中的默认路径逻辑,将用户数据目录和插件目录指向可执行文件所在目录的相对路径。 - 测试时可检查
data目录下是否生成了user-data和extensions子文件夹,确认数据未写入系统默认路径(如Windows的%APPDATA%、Linux的~/.config)。 - 最终打包时,可将Code OSS主程序目录和
data文件夹一起压缩为zip或tar包,方便随身携带。
内容的提问来源于stack exchange,提问作者JHubi
相关产品推荐
相关产品推荐

