使用ProGet Bower Feed出现EINVRES错误,请求协助解决
我之前帮同事排查过几乎一模一样的ProGet Bower Feed问题,结合你的错误信息和.bowerrc配置,给你几个针对性的排查和修复方向:
1. 修正ProGet Feed的URL路径
你报错里的请求地址是http://*****/feeds/bower/Bower/packages/packages/bootstrap——这里明显重复了两次packages,这是Bower和ProGet路径映射不匹配导致的核心问题之一。
调整.bowerrc里的registry search URL,把http://*****/feeds/bower/Bower改成http://*****/feeds/bower/Bower/packages,这样Bower请求包时就不会重复拼接路径了。修正后的配置片段:
"registry": { "search": [ "http://*****/feeds/bower/Bower/packages", "https://registry.bower.io" ] }
2. 验证ProGet Feed的返回内容合法性
直接用浏览器或者curl命令访问http://*****/feeds/bower/Bower/packages/bootstrap,检查返回的是不是标准JSON:
- 如果返回的是HTML页面(比如ProGet的错误页、登录页),说明Feed配置有问题:要么是包未同步到ProGet,要么是Feed权限不允许匿名访问(如果你的请求没带认证信息)。
- 如果返回的JSON格式有语法错误,需要检查ProGet的Bower Feed同步状态,或者手动重新同步bootstrap包。
3. 清理冲突的代理配置
你的.bowerrc里同时配置了proxy、http-proxy和https-proxy,这三个配置在部分Bower版本里会存在优先级冲突。建议只保留http-proxy和https-proxy,删除冗余的proxy配置,避免代理请求异常:
{ "https-proxy":"http://****:3500", "http-proxy":"http://****:3500", "strict-ssl": false, "registry": { "search": [ "http://*****/feeds/bower/Bower/packages", "https://registry.bower.io" ] } }
另外还要确认你的代理服务器能正常访问ProGet的Feed地址,有些代理会拦截请求或返回非标准内容,导致Bower解析失败。
4. 排查Bower版本兼容性
部分较新的Bower版本(比如1.8.x及以上)和ProGet的Bower Feed存在兼容性问题,试试降级到1.7.x的稳定版本测试:
npm install -g bower@1.7.9
如果降级后问题解决,说明是版本适配问题,可以暂时保留这个版本,或者等待ProGet更新对新版本Bower的支持。
内容的提问来源于stack exchange,提问作者Andy Johnson

