npm安装坑合集

486 阅读2分钟

使用 npm i 时的种种问题

刚接触 npm的一些小伙伴肯定会遇到类似的问题:

  • 安装慢,安装失败
  • 安装源管理
  • node-sass 安装失败

本文把平日里遇到的一些 npm 的坑列举处理,并给了对应的解决方案。

安装慢

装的慢是因为 npm的资源地址默认指向的是 npm本身的源,国外的服务器在国内访问会有这些问题 下载慢下载失败,所以我们可以手动去设置 npm源指向淘宝源:

npm config set registry https://registry.npmmirror.com/

管理镜像

主角就是nrm,它是一个可随时随地自由切换Npm镜像的管理工具。打开CMD工具,执行npm i -g nrm安装nrm,再执行nrm -V,输出版本表示安装成功。

有了它,上述何时使用何种镜像的问题就迎刃而解了。只需掌握以下几条命令就能操作nrm

命令功能
nrm add <name> <url>新增镜像
nrm del <name>删除镜像
nrm test <name>测试镜像
nrm use <name>切换镜像
nrm current查看镜像
nrm ls查看镜像列表

安装失败

有装过类似 node-sass的同学可能会遇到类似的问题,就是安装不了,原因是安装node-sass时,在install阶段会从Github Releases中下载一个叫binding.node的文件,而Github Releases中的文件都托管在s3.amazonaws.com中,该网址被Q了,所以又安装不了。

解决方案是,我们去修改node-sass 依赖的sass_binary_site指向:

npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/

其实还有好几个类似的模块,为了方便使用,我还是把它们源码中的镜像参数地址扒出来,统一设置方便安装。它们分别是electronphantompuppeteerpythonsasssentrysharpsqlite

npm config set <name> <url>,赶紧一键复制,一劳永逸

npm config set electron_mirror https://npm.taobao.org/mirrors/electron/
npm config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs/
npm config set puppeteer_download_host https://npm.taobao.org/mirrors/
npm config set python_mirror https://npm.taobao.org/mirrors/python/
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
npm config set sentrycli_cdnurl https://npm.taobao.org/mirrors/sentry-cli/
npm config set sharp_binary_host https://npm.taobao.org/mirrors/sharp/
npm config set sharp_dist_base_url https://npm.taobao.org/mirrors/sharp-libvips/
npm config set sharp_libvips_binary_host https://npm.taobao.org/mirrors/sharp-libvips/
npm config set sqlite3_binary_site https://npm.taobao.org/mirrors/sqlite3/