nodejs-autocomplete插件已停止维护,应改用tern_for_sublime组合方案:安装tern_for_sublime、在项目根目录npm install --save-dev tern、配置包含"node":{}的.tern-project文件以启用内置模块补全。

Nodejs-Autocomplete 插件已停止维护,别再装它了
这个插件从 2018 年起就不再更新,依赖的 node_modules 解析逻辑过时,无法正确识别 ES6+ 模块、TypeScript 类型、exports 字段或 pkg.types。你装了也大概率没提示,或者提示错乱——比如把 fs.promises.readFile 当成不存在,或把 require('path') 的方法全标红。
用 Sublime Text + NodeJS 的真实可行方案
真正稳定可用的是组合:Sublime Text + SublimeLinter(校验) + JsPrettier(格式化) + tern_for_sublime(智能提示)。其中 tern_for_sublime 是目前唯一还在维护、能解析 node_modules 并支持 CommonJS/ESM 混合项目的 Sublime 提示引擎。
- 先通过 Package Control 安装
tern_for_sublime(不是 Nodejs-Autocomplete) - 确保系统已安装 Node.js(
node -v能输出版本),且npm可执行 - 在项目根目录运行
npm init -y && npm install --save-dev tern,生成node_modules/tern - 在项目根目录新建
.tern-project,内容至少包含:{ "libs": ["ecmascript"], "plugins": { "node": {} } }
为什么 .tern-project 里必须写 "node": {}
tern_for_sublime 默认不加载 Node.js 内置模块定义(如 fs、http、stream)。不加这个插件配置,你就看不到任何 require('fs'). 后的自动补全。
-
"node": {}启用内置模块支持;加上"esmodules": true才能识别import fs from 'fs' - 如果项目用了
webpack别名(如@/utils),需额外加"defs": ["./defs/webpack.json"]并手动维护路径映射 - 不要把
.tern-project放进node_modules或子目录——它只对当前目录及子目录生效
常见报错和绕过方式
启动 Sublime 后右下角弹出 Tern: Failed to start server,通常不是插件问题,而是环境链路断了:
- 检查
tern是否真在node_modules/.bin/tern(不是全局安装的npm install -g tern) - Windows 用户注意:Sublime 默认不读取
%PATH%,需在Preferences → Package Settings → Tern → Settings中显式填"tern_bin": "node_modules/.bin/tern" - Mac/Linux 若提示
EACCES,别sudo npm install,改用npm config set prefix ~/.local并重装tern - 提示慢?关掉
"use strict mode"(在.tern-project中设"ecmaVersion": 2022即可,不用 strict)
复杂点在于:每个项目得单独配 .tern-project 和本地 tern,没有“一次配置,全局生效”这回事。但换来的是稳定、准确、不崩溃——比强行复活一个 6 年没更新的插件靠谱得多。










