软件包下载报错的解决方案

下载工具的选择上:
推荐尽量使用 npm ,感受到 yarn 的压力之后,npm做了一些类似的改进新版 npm 并不比 yarn 差。目前楼主感受使用 yarn 偶尔会有一些诡异的报错。

方案一:设置 npm 镜像源

# 设置为国内镜像源
npm config set registry http://registry.npm.taobao.org

# 查看当前镜像源
npm config get registry

# 恢复原来镜像源
npm config set registry http://registry.npmjs.org

方案二:设置 .npmrc 文件

虽然已设置国内镜像源, 有时候 A 包中需要下载 B 包, 这时还可能到国外站点下载 B 包。

.npmrc 文件可以提供「变量」设置某些包的下载地址也为国内镜像.

windows 系统:文件位置一般为 C:/Users/Administrator(当前用户名)/.npmrc

macOS 系统:文件位置一般为用户家目录,cd回车直接切到家目录,ls -al 即可查看

并且我们可以把下面常见包地址复制到 .npmrc 中,从而提高下载成功率。

sharp_binary_host = https://npm.taobao.org/mirrors/sharp
sharp_libvips_binary_host = https://npm.taobao.org/mirrors/sharp-libvips
profiler_binary_host_mirror = https://npm.taobao.org/mirrors/node-inspector/
fse_binary_host_mirror = https://npm.taobao.org/mirrors/fsevents
node_sqlite3_binary_host_mirror = https://npm.taobao.org/mirrors
sqlite3_binary_host_mirror = https://npm.taobao.org/mirrors
sqlite3_binary_site = https://npm.taobao.org/mirrors/sqlite3
sass_binary_site = https://npm.taobao.org/mirrors/node-sass
electron_mirror = https://npm.taobao.org/mirrors/electron/
puppeteer_download_host = https://npm.taobao.org/mirrors
chromedriver_cdnurl = https://npm.taobao.org/mirrors/chromedriver
operadriver_cdnurl = https://npm.taobao.org/mirrors/operadriver
phantomjs_cdnurl = https://npm.taobao.org/mirrors/phantomjs
python_mirror = https://npm.taobao.org/mirrors/python
registry = https://registry.npm.taobao.org/
disturl = https://npm.taobao.org/dist

方案三:配置 hosts 文件

原因:

  • 有些包在国内镜像中没有及时更新, 或者根本没有。

  • 国外站点下载不通畅多是因为在「域名 => IP」阶段受阻。

  • 我们的解决方案就是提前把「域名与IP的对应关系」准备好,放在本在 hosts 文件中。

编辑目录 C:\Windows\System32\drivers\etc\hosts ,把下述内容粘贴到 hosts 文件中即可。

# GitHub Start =================================================================
52.74.223.119 github.com
192.30.255.116 api.github.com
140.82.112.25 live.github.com
8.7.198.45 gist.github.com
192.0.66.2 github.blog
185.199.108.154 github.githubassets.com
50.17.56.103 collector.githubapp.com
52.217.67.172 github-cloud.s3.amazonaws.com
140.82.114.22 central.github.com
199.232.96.133 raw.githubusercontent.com
199.232.96.133 user-images.githubusercontent.com
199.232.96.133 desktop.githubusercontent.com
199.232.96.133 camo.githubusercontent.com
199.232.96.133 avatars.githubusercontent.com
199.232.96.133 avatars0.githubusercontent.com
199.232.96.133 avatars1.githubusercontent.com
199.232.96.133 avatars2.githubusercontent.com
199.232.96.133 avatars3.githubusercontent.com
199.232.96.133 avatars4.githubusercontent.com
199.232.96.133 avatars5.githubusercontent.com
199.232.96.133 avatars6.githubusercontent.com
199.232.96.133 avatars7.githubusercontent.com
199.232.96.133 avatars8.githubusercontent.com
199.232.96.133 avatars9.githubusercontent.com
199.232.96.133 avatars10.githubusercontent.com
199.232.96.133 avatars11.githubusercontent.com
199.232.96.133 avatars12.githubusercontent.com
199.232.96.133 avatars13.githubusercontent.com
199.232.96.133 avatars14.githubusercontent.com
199.232.96.133 avatars15.githubusercontent.com
199.232.96.133 avatars16.githubusercontent.com
199.232.96.133 avatars17.githubusercontent.com
199.232.96.133 avatars18.githubusercontent.com
199.232.96.133 avatars19.githubusercontent.com
199.232.96.133 avatars20.githubusercontent.com
# GitHub End ( 更新时间 2021-1月 )===================================================================

PS:hosts文件中的ip 内容不是百分百固定, 遇到报错提示 某个域名连接失败, 就到ip查询网站中查找其相应的 IP 地址, 然后把 IP地址与域名的对应信息追加到上面 hosts 文件中。

为什么要配置它,有啥用?

  • 正常访问 http://aaa.bbb.ccc/ 计算机要向 DNS 询问对应的 IP 地址,不告诉你,你就访问不了
  • 在 hosts 中设置后
  • 再次访问 http://aaa.bbb.ccc/ 计算机不问了,直接通过 IP 访问

有些时候之所以访问不了,就是 DNS 不告诉我们。现在咱自己记着 IP, 略过这一步,就能正常访问了。

方法四:终极大法-----cnpm好

# 安装 cnpm , 之后使用 cnpm 下载安装包
npm install -g cnpm --registry=https://registry.npm.taobao.org

方法五:没有办法的办法

如果以上皆不能解决你的问题,可以看一看自己的防火墙有没有一些设置,或者换一个网络环境,实在不能解决就让别人下好传你一份吧。

你可能感兴趣的:(大前端,npm,包,node,cnpm)