sublime text 原生不支持 import/export 补全、路径跳转或依赖分析,必须通过 lsp 插件桥接对应语言服务器(如 lsp-typescript 调用 tsserver)实现模块感知;旧插件仅字符串匹配,lsp 才能解析 jsconfig.json/paths、识别别名、展开相对路径并联动重命名。

Sublime Text 本身不提供模块化开发所需的 import/export 补全、路径跳转或依赖分析能力,必须靠 LSP 类插件 + 对应语言服务器实现——不是装个 Emmet 或 SublimeCodeIntel 就能解决的。
为什么 LSP 是唯一可行方案
旧式插件如 SublimeCodeIntel 或 JSCompletions 无法解析 ES Module 语法树,对 import { foo } from './utils' 这类写法只能做字符串匹配,路径跳转失败、重命名不联动、类型推导为零。LSP 插件(如 LSP-typescript)调用真实 tsserver,能识别 jsconfig.json 中的 baseUrl 和 paths 别名,补全时自动展开相对路径。
- 不装 LSP,就等于在 Sublime 里写 JS/TS 时没有“模块感知”
-
LSP-eslint不是替代SublimeLinter-eslint,而是接管其错误上报通道,让报错位置更准、修复建议可直接触发 - 若项目用 Vite + TypeScript,
LSP-pyright对.d.ts模块声明支持更好,但需手动在pyrightconfig.json中启用"include": ["src/**/*"]
LSP-typescript 安装后不提示?检查三个硬性条件
装完 LSP-typescript 后打开 .js 文件仍无补全,大概率卡在这三处:
- 文件右下角语法模式必须是
JavaScript或TypeScript,不是Plain Text或Vue Component(后者需额外配syntax_scopes) - 项目根目录必须有
jsconfig.json(JS)或tsconfig.json(TS),哪怕内容只是{"compilerOptions": {}}—— 缺它则服务器降级为“无配置模式”,路径别名和模块解析全失效 - Node.js 版本需 ≥16.14,
tsserver在 Node 14 下会静默退出,控制台看不到报错,但LSP面板显示 “server crashed”
Vue/JSX 中 import 提示失效的典型场景
在 .vue 单文件组件的 <script></script> 块里写 import { useStore } 没提示,常见原因:
-
LSP-typescript默认不处理.vue文件,需在LSP.sublime-settings中加配置:"enabled_languages": {"vue": "typescript"} -
jsconfig.json中未声明"include": ["src/**/*.vue"],导致tsserver不扫描 .vue 文件里的 script 内容 - 用了
defineComponent但没装@vue/runtime-core的类型定义,useStore等组合式 API 无法被推导——此时要手动运行npm install -D @vue/runtime-core
模块路径补全是前端开发中最容易被当成“插件坏了”的环节,实际问题往往藏在配置文件是否被语言服务器真正读取,而不是插件装没装对。每次改完 jsconfig.json 或 tsconfig.json,记得在命令面板中执行 LSP: Restart Servers,否则改动不生效。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











