离线安装失败主因是未执行apm install --production构建,导致缺少node_modules及兼容性校验;必须在与目标机完全一致的atom版本下构建,且本体须用官方deb/rpm/msi包安装。

离线安装失败,八成是没走完 apm install --production
Atom 插件不是“解压即用”,源码包(比如从 GitHub 下载的 color-picker-master.zip)默认不含 node_modules,而 Atom 启动时不会自动补依赖。直接扔进 ~/.atom/packages/ 或 %USERPROFILE%\.atom\packages\,大概率白屏或报 Error: Cannot find module 'fs-plus'。
正确做法是在**与目标机完全一致版本的 Atom**(例如目标机是 v1.69.0,构建机也必须是 v1.69.0)中执行:
-
apm install --production linter-gcc(替换成你要装的插件名) - 进入插件目录(如
~/.atom/packages/linter-gcc),确认存在node_modules文件夹,且里面有gcc、atom-linter等子目录 - 整个插件文件夹(含
node_modules)打包迁移,别只复制源码
本体安装不对,离线安装注定失败
离线安装的前提是 Atom 本体本身能正常启动。如果本体是用 AtomSetup-x64.zip 解压硬凑的,或者从非官方镜像下载的“绿色版”,resources/app/apm 往往缺失或损坏,后续所有插件都会卡在加载阶段。
必须使用官方安装包:
- Windows:只认
AtomSetup-x64.exe(不是 .zip) - Debian/Ubuntu:必须用
atom-amd64.deb,执行dpkg -i - CentOS/RHEL:用
atom.x86_64.rpm,配合yum localinstall - macOS:必须用官网提供的
Atom-mac.zip(Apple 签名完整包,不是 GitHub Release 的源码包)
这些包会自动安装 libasound2、libxkbfile1 等底层依赖,zip 包完全不提供。
有些插件根本不能离线用
不是所有插件都支持离线部署,三类插件在断网环境下必然失效:
- 依赖实时 API:如
autocomplete-atom-api(需连接 GitHub 获取最新文档)、platformio-ide(启动强制校验云端 toolchain) - 含动态下载逻辑:如某些版本的
language-rust,首次启用会拉取rustc语法定义文件 - 需要全局
apm运行时支持:如sync-settings,本质是包装了apm login和apm publish,离线机没连过服务器就无法初始化
这类插件即使把整个 node_modules 拷过去,控制台也会报 Failed to fetch https://... 或卡在加载阶段。
装完不生效?先看开发者工具 Console 报什么错
别凭感觉判断“装好了”。打开开发者工具(Ctrl+Shift+I),切到 Console 标签页,常见线索有:
-
Error: Cannot find module 'season'→ 插件根目录缺package.json,或"main"字段指向不存在的入口文件(比如写成"./lib/main.js",但实际是"./src/main.js") -
Failed to activate package 'linter' because it depends on 'linter@^3.0.0'→ 缺少前置依赖,得一并离线安装linter包 - 无任何报错但功能不触发 → 检查是否满足激活条件:比如
autocomplete-python必须打开.py文件,且language-python已加载;快捷键Ctrl+Shift+L手动设语言模式试试
最麻烦的不是复制路径,而是每个插件对激活时机、依赖粒度、构建要求都不一样——minimap 需要 npm run build,go-plus 还得调外部 gopls 二进制。离线前,最好先在有网机器上跑通一次 apm test,看它到底依赖什么。











