使用npm时遇到Error: Invalid protocol xxx.com.cn
分析思路:
- 通过百度,发现一般这个问题是设置代理的时候,没有设置http://或https://引起的,而 npm 可以设置代理,首先猜测是代理的问题,
通过npm config list 查看配置,发现没有设置代理;并且检查了代理的设置情况,也没有发现配置的代码;并且检查了6种设置方式,都排除掉了
这里npm获取配置有6种方式,优先级由高到底。
1 命令行参数。 --proxy http://server:port即将proxy的值设为http://server:port。
2 环境变量。 以npm_config_为前缀的环境变量将会被认为是npm的配置属性。如设置proxy可以加入这样的环境变量npm_config_proxy=http://server:port。
3 用户配置文件。可以通过npm config get userconfig查看文件路径。如果是mac系统的话默认路径就是$HOME/.npmrc。
4 全局配置文件。可以通过npm config get globalconfig查看文件路径。mac系统的默认路径是/usr/local/etc/npmrc。
5 内置配置文件。安装npm的目录下的npmrc文件。
6 默认配置。 npm本身有默认配置参数,如果以上5条都没设置,则npm会使用默认配置参数。是引用
2.检查操作系统的环境变量,最后发现是自己设置了一个http_proxy,值正好是 xxx.com.cn,去掉该环境变量,恢复正常了