sync-settings插件已彻底失效,因其依赖的GitHub Gist API在2022年底关闭,仅能导出插件名列表;apm list --installed --bare不等于完整备份,因不包含本地修改、独立配置、私有插件及storage数据。

sync-settings 插件已彻底失效,不能备份插件本身,只能导出插件名列表。它从不上传 node_modules、源码或配置文件,只写入一个 packages.json 文本文件到 Gist——而这条链路在 2022 年底就被 GitHub 关闭了。
为什么 apm list --installed --bare 不等于“备份所有插件”
这条命令只输出已安装插件的名称和版本号(如 atom-beautify@0.33.4),但:
- 不包含插件依赖的本地修改(比如你手动 patch 过
autocomplete-plus的某处逻辑) - 不保存插件的独立配置(如
linter-eslint的.eslintrc路径设置) - 不处理私有插件(放在
~/.atom/packages/your-private-plugin下的代码) - 某些插件(如
git-plus)会把 token 或仓库路径存在storage/目录,这个目录根本不会被任何 sync 工具扫描
真正能复原插件的只有 apm install + git 管理
要跨设备还原全部插件(含版本、私有插件、配置上下文),必须分两步走:
- 用
apm list --installed --bare > packages.json生成纯文本清单(注意:不是 Atom 自带的packages.json,那个是空壳) - 把私有插件目录(如
~/.atom/packages/my-custom-linter)单独git add到你的配置仓库 - 恢复时先
apm install公共插件,再git clone私有插件到对应路径 - 国内用户务必提前执行:
apm config set registry https://npmmirror.com/mirrors/atom,否则apm install会卡死或超时
一键备份脚本(含私有插件检测)
把这个保存为 backup-atom.sh,在 ~/.atom 目录下运行:
#!/bin/bash # 只备份明确受控的文本配置和插件声明 apm list --installed --bare > packages.bare.json <h1>检查是否有非 npm 安装的私有插件</h1><p>find packages -maxdepth 1 -type d ! -name ".*" ! -name "packages" | while read dir; do if [ -f "$dir/package.json" ] && ! grep -q '"repository":' "$dir/package.json"; then echo "⚠️ 发现私有插件: $(basename $dir)" >> backup.log tar -cf "private-$(basename $dir).tar" -C "$dir" . fi done</p><h1>仅打包核心配置文件(不含 storage/ compile-cache/ node_modules)</h1><p>tar -cf atom-config.tar config.cson keymap.cson snippets.cson styles.less init.coffee packages.bare.json backup.log</p>
执行后你会得到 atom-config.tar 和若干 private-*.tar。恢复时先解压 atom-config.tar,再逐个解压私有插件到 packages/ 下,最后 apm install。
最容易被忽略的是:Atom 从不自动清理 packages/*/node_modules,重装后直接 apm install 会残留旧版依赖——必须先 rm -rf packages/*/node_modules 再执行安装。











