使用 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/
其实还有好几个类似的模块,为了方便使用,我还是把它们源码中的镜像参数地址扒出来,统一设置方便安装。它们分别是electron、phantom、puppeteer、python、sass、sentry、sharp和sqlite。
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/