vscode本身不管理npm依赖,所谓“一键同步”本质是终端在正确node环境下执行npm install并确保vscode能识别已安装模块;npm install后import仍标红,因vscode不会自动感知node_modules变更,需重启语言服务或重开文件,同时检查jsconfig.json/tsconfig.json的typeroots配置、esm项目是否启用type: "module"、launch.json中program路径是否指向真实编译后入口。

VSCode 本身不安装、不同步、也不管理 npm 依赖,所谓“一键同步”本质是让终端和调试器在正确 Node 环境下执行 npm install,并确保 VSCode 能识别已安装的模块。真正起作用的是你本地的 node 和 npm,不是插件或设置。
为什么 npm install 后 import 还标红?
VSCode 不会自动感知 node_modules 变更,尤其当依赖更新后,类型定义(@types/xxx)和路径索引仍缓存在内存中。
- 执行
npm install或npm update后,必须关闭所有已打开的.js/.ts文件,再重新打开——否则编辑器仍持旧引用 - 确认
jsconfig.json或tsconfig.json中启用了"typeRoots"(如["node_modules/@types"]),否则@types包不会被加载 - ESM 项目若用
require()加载 CommonJS 包,TypeScript 可能拒绝解析,优先改用import,或确保package.json有"type": "module"
launch.json 的 program 字段填错导致依赖失效
调试器找不到入口文件,就根本不会加载 node_modules,所有 import 都会报错,和依赖是否安装无关。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 默认生成的
"program": "${workspaceFolder}/index.js"很可能不存在——改成真实存在的入口,比如"${workspaceFolder}/app.js"或"${file}"(当前文件) - TS 项目不能写
src/index.ts,必须指向编译后路径(如dist/index.js),否则触发ERR_REQUIRE_ESM或Cannot find module - 删掉
runtimeExecutable字段,除非你明确要用nvm exec;它会干扰默认查找逻辑,反而让调试器绕过已安装的依赖
tasks.json 中 npm run 命令不走 nvm 版本
VSCode 的 task 直接调用 /usr/bin/npm,跳过了 shell 初始化流程,所以 nvm use 对它完全无效。
- 不要在
tasks.json里写"command": "npm run dev"—— 改成"command": "nvm exec 18.18.2 npm",显式指定版本 - 或者更稳妥:把
nvm use 18.18.2 && npm run dev写进 shell 脚本(如dev.sh),task 中调用该脚本 - 确保
.nvmrc存在且内容为18.18.2,并在settings.json中启用"terminal.integrated.inheritEnv": true,让终端启动时自动加载
最易被忽略的是:VSCode 图形界面启动时根本不读 ~/.zshrc,所以即使你配置了 nvm,只要不是从终端执行 code . 启动,所有环境变量都不可见。这不是 bug,是 macOS/Linux 的 shell 行为设计使然。










