NPM镜像管理与优化:解决安装难题.pdfVIP

  • 0
  • 0
  • 约9.76千字
  • 约 22页
  • 2026-01-15 发布于北京
  • 举报

技术要点:Npm

前言

因为国内网络环境的,执行npmi安装依赖时,肯定会遇到安装过慢或安装失

败的情况。有经验的同学通常会在Node安装完毕顺便把Npm镜像设置为国内的

镜像。

npmconfigsetregistry

这样就能应付很多npmi的安装情况。当然这只是解决很多安装过慢或安装失败的

情况,随着项目的深入开发,肯定还会遇到一些更奇葩的情况。本章将带领你填埋

Npm镜像那些险象环生的坑,通过多方面探讨Npm镜像问题,全方位解决安装过慢

或安装失败,使npmi安装依赖时更顺畅。

背景:如何优雅切换Npm镜像

若开源一个Npm模块,在开发时使用镜像,但发布时必须使用原镜像。在着手

解决上述问题前,先推荐一个镜像管理工具。

原镜像:

镜像:

管理镜像

主角就是nrm,它是一个可随时随地自由切换Npm镜像的管理工具。打开CMD工

具,执行npmi-gnrm安装nrm,再执行nrm-V,输本表示安装成功。

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

nrm。

命令功能

nrmaddnameurl新增镜像

nrmdelname删除镜像

nrmtestname测试镜像

nrmusename切换镜像

nrmcurrent查看镜像

nrmls查看镜像列表

熟悉命令后来一波操作,原镜像与镜像随意切换。当然记性好也无需该工具。

遇坑填坑

有了nrm切换到镜像,安装速度明显加快,但遇到安装的Npm模块依赖了C++模

块那就坑爹了。在安装时会隐式安装node-gyp,node-gyp可编译这些依赖C++模

块的Npm模块。

那问题来了,那问题来了,node-gyp在首次编译时会依赖Node源码,所以又悄悄去Node。

虽然在安装依赖时已切换到镜像,但一点卵用都冇。这样又因为国内网络环境

的,再次遇到安装过慢或安装失败的情况。感觉是死循环啊!

还好npmconfig一个参数disturl,它可设置Node镜像地址,当然还是将其指

向国内的镜像。这样又能愉快地安装这些依赖C++模块的Npm模块了。

npmconfigsetdisturl

问题一步一步地解决,接着又出现另一个问题。平常都会使用node-sass作为开发

依赖,但node-sass的安装一直都是一个让人头疼的问题。

安装node-sass时,在install阶段会从Releases中一个叫

binding.node的文件,而Releases中的文件都托管在

中,该被Q了,所以又安装不了。

然而办法总比多,从node-sass的文档中可找到一个叫sass_binary_site

的参数,它可设置Sass镜像地址,还是将其指向国内的镜像。这样又

能愉快地安装node-sass了。

npmconfigsetsass_binary_site

其实还有好几个类似的模块,为了方便使用,我还是把它们源码中的镜像参数地址

扒出来,统一设置方便安装。它们分别是electron、phantom、puppeteer、

python、sass、sentry、sharp和sqlite。

配置镜像地址

npmconfigsetnameurl,赶紧一键,永久使用。特别注意,别漏了最后

的/。

npmconfigsetelectron_mirror

npmconfigsetphantomjs_cdnurl

npmconfigsetpuppeteer_download_host

npmconfigsetpython_mirror

npmconfigsetsass_binary_site

npmconfigsetsentrycli_cdnurl

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档