VS 2017 Angular模板安装Node Modules卡住,如何解决?
我之前在使用Visual Studio Community 2017 15.5.2的Angular模板时,也碰到过一模一样的卡死问题——构建一直停在“Build delayed until Bower/npm packages finish restoring”,既没有网络流量,文件夹大小也没变化。折腾了好一阵才解决,给你几个亲测有效的方案,按顺序试试:
手动终止残留进程并重启VS
先彻底关闭Visual Studio,然后打开任务管理器,找到所有和npm.exe、bower.exe、dotnet.exe相关的进程,全部结束掉(避免后台残留进程卡住)。重新打开VS后,右键解决方案选择「Restore NuGet Packages」,之后再尝试构建项目。手动执行npm安装依赖
有时候VS自动恢复包会出问题,手动操作更靠谱:- 找到项目根目录下包含
package.json的文件夹,按住Shift键右键点击该文件夹,选择「在此处打开PowerShell窗口」或「打开命令提示符」。 - 在窗口中输入命令:
npm install,等待命令执行完成(这时候可以看到明确的下载进度)。 - 回到VS,重新尝试构建项目。
- 找到项目根目录下包含
切换npm镜像源解决网络问题
如果是国内网络访问官方npm源受阻导致的卡住,可以切换到国内镜像源:
在命令行中执行:npm config set registry https://registry.npmmirror.com/,之后再执行npm install,速度会快很多。清理缓存与冗余文件
- 删除项目根目录下的
node_modules文件夹和package-lock.json文件(这两个文件可能因缓存导致恢复异常)。 - 关闭VS后,删除VS的组件缓存:找到路径
%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_*\ComponentModelCache(把*替换成你VS版本对应的具体文件夹名),删除该文件夹下的所有内容。 - 重新打开VS,执行
npm install后再构建。
- 删除项目根目录下的
检查并修复Bower配置(若项目使用Bower)
如果项目依赖Bower,检查bower.json里的依赖是否有版本冲突或无效包名。修正后,在命令行执行bower install手动恢复Bower包;同样可以给Bower设置国内镜像:bower config set registry https://registry.npmmirror.com/bower/。修复VS的Web工具组件
如果以上方法都无效,可能是模板本身的组件出了问题:打开VS的「工具」->「扩展和更新」,找到「ASP.NET and Web Tools」,点击「修复」选项,重启VS后重新创建项目再尝试。
内容的提问来源于stack exchange,提问作者mohammad rostami siahgeli




