如何为Node.js的.mjs项目开启VSCode的IntelliSense智能提示功能?
针对.mjs格式Node CLI项目的VSCode智能提示配置方案
此前配置jsconfig不生效,核心原因是默认配置未适配ESM(.mjs)的模块解析规则,按以下步骤配置即可:
1. 配置文件存放位置
如果仅子文件夹为CLI项目,将配置文件放在该子文件夹的根目录即可,不要和上层大项目的配置混用,避免冲突。条件允许的话建议直接将该子文件夹作为VSCode工作区根目录打开。
同时确认该子文件夹的package.json中已添加"type": "module"字段,标识项目为ESM规范。
2. 写入正确的配置内容
可以选择jsconfig.json或者tsconfig.json(更推荐,对ESM支持更完善,无需编写TS代码也可使用),配置内容如下:
{ "compilerOptions": { "target": "ESNext", // 以下两项为适配.mjs ESM模块的核心配置 "module": "NodeNext", "moduleResolution": "NodeNext", // 允许解析JS文件并开启类型检查 "allowJs": true, "checkJs": true, "noEmit": true }, // 匹配所有.mjs文件 "include": ["**/*.mjs"], "exclude": ["node_modules"] }
3. 补充内置/第三方依赖类型
如果需要Node.js内置API的智能提示,安装对应类型包:npm install @types/node -D
其他没有自带类型的第三方依赖,安装对应的@types/[包名]即可。
4. 生效配置
配置完成后按Ctrl+Shift+P(Mac系统为Cmd+Shift+P),输入「重启TypeScript语言服务」执行,或直接重启VSCode即可生效。
如果需要自定义函数的智能提示,给函数添加JSDoc注释即可自动识别:
/** * 执行终端命令 * @param {string} command 命令内容 * @param {string[]} options 命令参数 * @returns {Promise<string>} 命令执行返回结果 */ export async function execCommand(command, options) { // 业务逻辑 }
内容的提问来源于stack exchange,提问作者Fred Hors
相关产品推荐
相关产品推荐

