apm install /path/to/plugin.tgz是唯一有效的离线安装命令;必须用同版本atom执行apm install --production构建含node_modules的.tgz包,github源码包或npm install均无效。

apm install /path/to/plugin.tgz 是唯一能用的离线命令
离线安装不能用 apm install linter-gcc 这类联网命令,也不能直接复制源码文件夹。Atom 只认 .tgz 格式包,且必须是用 apm install --production 在同版本 Atom 下构建出来的归档——GitHub 上下载的 .zip 或 .tar.gz 源码包一律无效。
正确流程是在一台与目标机完全一致版本(如 v1.69.0)的联网 Atom 中执行:
apm install --production linter-gcc cd ~/.atom/packages/linter-gcc tar -czf linter-gcc-1.69.0.tgz .
然后把 linter-gcc-1.69.0.tgz 拷到离线机,在其终端中运行:
apm install /tmp/linter-gcc-1.69.0.tgz
-
/tmp/路径必须写全,相对路径如./linter-gcc.tgz会失败 - 文件名里带版本号不是习惯,而是避免混淆——不同 Atom 版本构建的
.tgz不兼容 - 如果报
Error: Cannot find module 'season',说明这个.tgz没包含node_modules,构建时漏了--production
为什么不能用 npm install 替代 apm install
npm install 会装错依赖树结构、跳过 Atom 特定的 postinstall 步骤(比如编译 native 模块),导致插件启动时报 Cannot read property 'onDidStopChanging' of undefined 或根本无法加载 lib/main.js。
典型差异包括:
-
apm install读取的是package.json中的engines.atom字段,强制校验兼容性;npm install完全忽略它 -
apm自带专用的node-gyp和 Electron 头文件路径,npm默认用全局配置,离线时大概率卡在gyp WARN install got an error - 某些插件(如
go-plus)的postinstall脚本会调用apm rebuild,npm install不触发该行为
Windows 下 apm 命令不可用?先确认路径和权限
Windows 用户常遇到 apm 找不到,不是没装好,而是 PATH 缺失或权限被拦截。Atom 安装版默认不加 PATH,必须手动补全两个路径:
-
C:Users\AppDataLocaltomin(含apm.exe和atom.exe) -
C:Users\AppDataLocaltompp-1.69.0 esourcespppmin(关键!缺它会导致gyp ERR! stack Error: Can't find Python executable)
补完后重启终端再试。如果仍报错,别急着重装——先在 Atom GUI 中按 Ctrl+Shift+P 输入 Window: Reload 刷新,有时环境变量没被 Atom 主进程继承。
离线插件装进去了但不生效?检查三个硬性条件
插件目录存在、node_modules 齐全、apm install 成功返回,不代表功能可用。必须满足:
-
package.json中的"name"字段值必须与插件文件夹名**完全一致**(大小写、连字符都不能差) - 插件根目录下要有
lib/或dist/目录,且含可执行的 JS 入口(部分插件如minimap源码需apm link或npm run build才生成) - 语法识别必须匹配:打开
.js文件时右下角显示JavaScript,而不是Plain Text;否则autocomplete-javascript类插件不会触发
最容易被忽略的是最后一点——Atom 的补全是按 grammar 触发的,不是按文件后缀。如果项目里没装对应语言包(如 language-javascript),再好的 autocomplete 插件也等于没装。











