sublime text 默认不解析 webpack 配置语义,需 lsp 插件 + webpack-language-server + 正确 scope、语法、触发配置及 jsdoc 注释才能实现 plugins. 等智能补全,缺一不可。

Sublime Text 本身不解析 Webpack 配置语义,webpack.config.js 文件里的 module.exports、resolve.alias 或 plugins 数组不会自动触发属性补全;要实现类似 VS Code 的键入 mode: 就弹出 "development"/"production" 的效果,必须靠 LSP 插件 + Webpack 专用语言服务器(如 webpack-language-server)+ 正确 scope 和触发配置,缺一不可。
为什么 webpack.config.js 里输 plugins. 没提示?
原生 Sublime 只把 plugins 当普通变量名,不识别它是个数组、更不知道 Webpack 官方插件有哪些。LSP 不加载或没配对,就等于没装——状态栏不显示 LSP-webpack,控制台也无报错,纯静默失效。
- 右下角语法必须是
JavaScript(不是Plain Text或JSON),可用Tools → Developer → Show Scope Name确认光标处 scope 是source.js -
webpack.config.js必须已保存(未保存的临时文件不被 LSP client 扫描) - 不能只装
LSP插件,必须额外安装webpack-language-server:终端执行npm install -g webpack-language-server(全局)或项目内npm install --save-dev webpack-language-server - 重启 Sublime 后,按
Ctrl+Shift+P→ 输入LSP: Enable Language Server→ 选中webpack,底部状态栏出现LSP-webpack active才算连通
LSP.sublime-settings 中 webpack client 必须写的字段
菜单 → Preferences → Package Settings → LSP → Settings,右侧用户设置里填入 clients 配置。错一个字段,server 就不启动,且控制台不报错。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
-
"command":必须是可执行路径,例如["webpack-language-server", "--stdio"](Linux/macOS)或["npx", "webpack-language-server", "--stdio"](Windows 常需 npx) -
"languageId":固定为"javascript",不是"webpack"或"js" -
"scopes":必须含"source.js",否则不响应.config.js文件 -
"syntaxes":指向 Sublime 自带 JS 语法定义:"Packages/JavaScript/JavaScript.sublime-syntax"(注意大小写和路径拼写) -
"enabled":显式设为true,否则 client 被忽略
补全仍不弹出?检查 auto_complete_triggers 和 commit 设置
LSP 连上了,不代表输入 . 或 : 就自动弹窗——Sublime 默认只对字母数字触发词频补全,语义字符需手动声明。
- 在
Preferences → Settings (User)中确认有:"auto_complete": true和"auto_complete_commit_on_tab": true - 加触发器:
"auto_complete_triggers": [{"selector": "source.js", "characters": ".:"}]—— 冒号:对mode:、devtool:补全至关重要,点号.对plugins.有效 - 别把
text.html错加进 triggers:会导致 HTML 标签名污染 JS 补全候选框 - 如果用
webpack-merge或自定义 config 函数,LSP 默认不推断返回类型,补全仍有限;此时建议在 config 文件顶部加 JSDoc 注释,例如/** @type {import('webpack').Configuration} */
Webpack 别名(如 @/src)在路径补全中不生效?用 AutoFileName 配 alias_map
webpack.config.js 里的 resolve.alias 不会被 LSP 读取,但 AutoFileName 插件支持手动映射。比如你写了 alias: { "@": "./src" },想在 import "@/components/Button.vue" 中补全,就得让 AutoFileName 知道 @ 指向哪。
- 确保已按 ST4 规范安装适配版
AutoFileName(文件夹名严格为AutoFileName,主文件为auto_file_name.py) - 打开
Preferences → Package Settings → AutoFileName → Settings – User,填入:"auto_filename_alias_map": { "@": "src" } - 注意:路径是相对于当前文件所在目录的相对路径,不是 Webpack 的根目录;若 config 文件在项目根,
"@"映射到"src"即可 - Alias 补全只在引号内触发:
import "@/|✅,import @/❌(没引号)
最易被忽略的是 scope 和 languageId 的匹配精度——source.js 和 source.babel 视为不同 scope,哪怕文件内容完全一样;Webpack 配置里用了 ES6 导出语法,却用了 Babel 语法高亮,LSP client 就不会加载。调 Show Scope Name 是排查第一步,不是可选项。










