断网环境安装Atom插件需在同版本Atom中用apm install --production构建,确保node_modules完整且含编译产物;必须使用官方安装包(deb/rpm/msi/zip签名版),禁用绿色版;依赖API、动态下载或apm运行时的插件离线必然失效。

断网环境装不上 Atom 插件,基本不是路径放错或解压不全的问题,而是插件目录里根本没生成 node_modules —— Atom 启动时只加载已构建完成的包,不会自动跑 npm install 或 apm install。
必须用 apm install --production 构建,不能只复制源码
从 GitHub 下载的 zip 包(如 linter-gcc)只是源码,不含 node_modules 和编译产物。直接扔进 ~/.atom/packages/ 后,Atom 会报 Error: Cannot find module 'season' 或 Failed to activate package 'xxx'。
- 在与目标离线机**完全一致版本**的 Atom(例如 v1.69.0)下执行:
apm install --production linter-gcc -
--production关键:跳过devDependencies,避免装一堆构建工具还可能失败 - 执行后检查
~/.atom/packages/linter-gcc/node_modules是否存在,且里面包含gcc、atom-linter等子目录 - 别用
npm install替代 —— 它不触发 Atom 特定的 postinstall 脚本,原生模块(如linter-gcc调用的gcc绑定)大概率无法加载
Atom 本体必须是官方安装包,否则 apm 根本跑不起来
如果离线机上的 Atom 是解压 .zip 或 .tar.gz 得来的,apm 命令十有八九会报错或静默失败 —— 因为官方 .deb/.rpm/.msi 包才完整包含 resources/app/apm 和签名验证机制。
- Debian/Ubuntu:必须用
atom-amd64.deb,运行dpkg -i;禁用第三方“绿色版” - CentOS/RHEL:用
atom.x86_64.rpm,配合yum localinstall自动补glibc依赖 - Windows:只认
AtomSetup-x64.exe;AtomSetup-x64.zip是无效包,双击无响应 - macOS:必须用官网下载的
Atom-mac.zip(Apple 签名),不是 GitHub Release 里的源码包
有些插件天生不支持离线,提前识别能省大量时间
即使把 node_modules 打包过去,以下三类插件在断网时必然失效:
- 依赖实时 API 的:
autocomplete-atom-api(需连 GitHub 拉最新 API 文档)、platformio-ide(启动强制校验云端 toolchain) - 含动态下载逻辑的:
language-rust某些版本首次启用会拉取rustc语法定义 - 需要全局
apm运行时的:sync-settings本质包装了apm login和apm publish,离线机没连过服务器就卡死
这类插件控制台会明确报 Failed to fetch https:// 或卡在 “Loading…” 状态,不用反复试。
装完不生效?第一反应不是重装,而是开控制台看报错
重启 Atom 后插件没出现、没响应,别急着删包重来。按 Ctrl+Shift+I 打开开发者工具,切到 Console 标签页,盯住首条错误:
-
Error: Cannot find module 'fs-plus'→package.json缺失,或"main"字段指向的入口文件(如./lib/main.js)不存在/路径大小写不匹配 -
Failed to activate package 'autocomplete-python' because it depends on 'language-python@^2.0.0'→ 少装了前置语言包,得一并离线部署language-python -
Cannot read property 'onDidStopChanging' of undefined→ 构建时 Atom 版本和目标机不一致,比如在 v1.72.0 下构建却装到 v1.69.0 环境中
真正难的不是复制文件,而是每个插件对激活时机、依赖粒度、构建产物路径的要求都不同 —— autocomplete-python 靠打开 .py 文件触发,minimap 需要 dist/ 目录,go-plus 还得配好外部 gopls 二进制。离线前,务必在联网机器上先跑通一次 apm install --production && apm test。

















