离线安装 atom 插件必须用 apm install --production 在与目标机完全一致的 atom 版本下构建含 node_modules 的可运行副本,否则因缺失依赖、版本不匹配或未编译导致启动失败。

离线安装 Atom 插件不能靠“复制即用”,必须用 apm install --production 在与目标机**完全一致的 Atom 版本**下构建出含 node_modules 的可运行副本,否则重启后必报 Cannot find module 'season' 或 Failed to activate package。
为什么直接解压 GitHub 源码进 ~/.atom/packages 会失败
GitHub 上下载的插件仓库(如 linter-gcc)是源码包,不含 node_modules,也不含编译后的 lib/ 或 dist/ 目录。Atom 启动时不会自动执行依赖安装或构建,只扫描已就绪的插件结构。
- 常见现象:插件在 Settings → Install 页面不显示、控制台报
Error: Cannot find module 'fs-plus' - 根本原因:缺少
package.json中"main"字段指向的真实入口文件,或该文件依赖的模块未被安装 - 别信“解压完重启就好”——没
node_modules就等于没装,不是 Atom 没扫到,是它根本跑不起来
必须用 apm install --production,而不是 npm install
apm 是 Atom 官方包管理器,它和 npm 在行为上关键不同:解析 engines.atom 版本、执行 postinstall 脚本、处理 native 模块(如 linter-gcc 调用 gcc)、生成 Atom 兼容的 require 树。
-
npm install可能漏掉devDependencies中的构建工具,也可能装错atom引擎版本(比如装了只支持 v1.72 的模块到 v1.69 环境) -
apm install --production会跳过devDependencies,减小体积且避免构建冲突;--production是必须加的参数,否则可能引入调试用模块导致离线机启动失败 - 验证是否成功:进入插件目录(如
~/.atom/packages/linter-gcc),确认存在node_modules/gcc和node_modules/atom-linter子目录
离线机上插件不生效?先打开开发者工具看控制台
别凭“Settings 里有名字”判断是否装好。打开 Ctrl+Shift+I,切到 Console,真实错误比猜测更准。
-
Failed to activate package 'autocomplete-python' because it depends on 'language-python@^0.49.0'→ 缺少语言包,得一并离线安装language-python -
Cannot read property 'onDidStopChanging' of undefined→ 插件是在 Atom v1.72 下构建的,但离线机是 v1.69,API 已变更 -
require is not defined或空白报错 →package.json中"main"指向了不存在的路径,或大小写不匹配(Windows 下敏感)
真正卡点不在下载或复制,而在每个插件对 activationHooks、语言绑定、原生二进制、甚至 Electron 头文件的隐式依赖——这些只有在同版本 Atom + apm install --production 流程走完后才确定就绪。跳过这步,等于把未编译的 C 源码直接扔进生产环境跑。











