npm卡在“npm audit”或“npm install”是因断网时默认连接registry超时挂起;需禁用audit、检查registry/proxy配置,并预热缓存配合npm ci实现可靠离线安装。

Terminal卡在“npm audit”或“npm install”时不动
断网状态下,VS Code 终端执行 npm install 或自动触发依赖安装时卡住(光标静止、无输出、CPU 占用低),大概率是 npm 正在尝试连接 registry 做安全审计——它默认会调用 https://registry.npmjs.org/ 拉取漏洞数据库,而断网导致请求超时挂起,最长可能等 30 秒以上才失败。
- 这不是 VS Code 的问题,而是 npm 的默认行为;VS Code 只是托管了这个终端进程
- 现象常见于离线开发、内网环境、CI 构建机断网调试、或临时拔网线验证部署包完整性
- 仅禁用扩展、重置终端配置、重启 VS Code 都无效,因为问题发生在 npm 子进程内部
关掉 npm audit 自动触发(最直接有效)
VS Code 终端里运行的 npm 默认启用了 audit,且从 npm v6.12.0+ 开始,npm install 会自动执行 npm audit --audit-level=low。断网时它就卡在 DNS 查询或连接等待上。
- 临时关闭:在终端中先执行
npm set audit false,再跑npm install—— 这会写入用户级 .npmrc,后续所有终端生效 - 项目级关闭:在项目根目录新建
.npmrc文件,写入一行audit=false(注意没空格) - 命令行绕过:直接用
npm install --no-audit,适合单次操作 - 别改
npm config set audit false全局设置——它可能影响其他联网项目的安全提醒
断网时 npm install 仍卡住?检查 registry 和 proxy 配置
即使关了 audit,npm 仍可能因 registry 不可达或 proxy 设置残留而 hang 住。断网环境下,任何带网络请求的 npm 操作(包括解析 package-lock.json 中的 integrity 字段)都可能阻塞。
- 运行
npm config get registry确认值不是私有 registry 地址(如https://my-internal-registry.com);如果是,用npm config set registry https://registry.npmjs.org/切回官方源(断网时也无妨,后续 install 会 fallback 到本地缓存) - 运行
npm config list查看是否有proxy或https-proxy配置项;若有,执行npm config delete proxy和npm config delete https-proxy - 检查
~/.npmrc文件里是否硬编码了企业 registry 或 auth token;断网时这些配置会让 npm 循环重试认证
彻底离线工作:启用 npm ci + 缓存预热
真正可靠的断网开发不是“关 audit 就行”,而是让 npm 完全不发网络请求。这需要提前准备,不是出问题后再补救。
-
npm ci比npm install更适合离线:它严格按package-lock.json安装,跳过 dependency resolution,且默认不 audit(除非显式加--audit) - 联网时执行一次
npm install,确保所有包已下载并缓存在~/.npm/_cacache;断网后npm ci会直接从本地缓存取包 - 若项目用了
node_modules提交(不推荐但存在),可删掉node_modules后用npm ci --no-audit --no-optional加速 - VS Code 插件如 “NPM Intellisense” 或 “Auto Import” 在断网时可能失效,但这不影响终端命令执行,无需处理


















