atom离线安装插件失败主因是未执行apm install --production,导致node_modules缺失;必须在与目标机完全一致atom版本(如v1.69.0)下构建,且本体须为官方deb/rpm/msi安装包。

Atom离线安装插件报错,90% 是因为没执行 apm install --production,而不是路径放错或解压不全。直接把 GitHub 源码 ZIP 扔进 ~/.atom/packages/ 必然失败——源码不含 node_modules,Atom 启动时不会自动补依赖。
报 Cannot find module 'xxx' 是缺 node_modules,不是模块名写错了
这类错误(如 Error: Cannot find module 'season'、'fs-plus')表面是找不到某个包,实际是整个 node_modules 目录根本不存在。Atom 不会像 npm 项目那样在启动时自动运行安装命令。
- 必须在与目标离线机**完全一致 Atom 版本**(例如都是
v1.69.0)的联网机器上,进入空目录后运行:apm install --production linter-gcc - 执行完立刻检查
~/.atom/packages/linter-gcc/node_modules是否存在,且里面包含gcc、atom-linter等子目录——这才是可运行副本 - 别用
npm install替代:它不触发postinstall脚本,原生模块(如linter-gcc绑定的 gcc 可执行文件)大概率无法加载
Failed to activate package 'xxx' 多因版本不匹配或入口文件缺失
这个报错常出现在插件已“显示安装成功”,但重启后无响应。根本原因通常是构建环境和目标环境 Atom 版本不一致,或 package.json 中 "main" 字段指向了不存在的文件。
- 在
v1.72.0下构建的插件,移到v1.69.0离线机上会报Cannot read property 'onDidStopChanging' of undefined—— API 方法在旧版中不存在 - 检查插件根目录下
package.json的"main"值(如"./lib/main.js"),再确认该路径下真实存在对应文件,注意大小写(Windows 下敏感) - 文件夹名必须与
package.json中"name"字段**完全一致**,比如文件夹叫autocomplete-python,就不能写成"name": "atom-autocomplete-python"
装完重启仍不生效?先开控制台看具体报错
不要凭 Settings 页面里显示 “Installed” 就认为成功。打开开发者工具(Ctrl+Shift+I),切到 Console 标签页,盯住第一行红色错误:
-
Error: Cannot find module 'season'→ 缺package.json或node_modules未生成 -
Failed to fetch https://...或卡在Loading...→ 插件本身不支持离线(如autocomplete-atom-api、platformio-ide、sync-settings) - 空白无报错但功能缺失 → 可能缺前置依赖(如
autocomplete-python需要language-python先加载,且只在.py文件中触发)
真正麻烦的不是拷贝路径,而是每个插件对激活时机、依赖粒度、构建产物结构的要求都不一样。离线部署前,最好先在有网机器上跑通一次 apm install --production 并验证功能,再整体打包迁移。











