nrm的保姆级使用教程

📢 鸿蒙专栏:想学鸿蒙的,冲

📢 C语言专栏:想学C语言的,冲

📢 VUE专栏:想学VUE的,冲这里

📢 CSS专栏:想学CSS的,冲这里

📢 Krpano专栏:想学VUE的,冲这里

🔔 上述专栏,都在不定期持续更新中!!!!!!!!!!!!!

目录

✨ 前言

✨ 什么是nrm

✨ 安装nrm

✨ 使用nrm

🔔 查看可用的源

🔔 增加自定义源

🔔 删除自定义源

🔔 测试源的响应时间

✨ 进阶应用

nrm的registry配置

永久使用源

nrm的权限控制

与yarn结合使用

使用nrm的安全性

✨ 结语


✨ 前言

        作为前端开发,你一定使用过 npm 来安装第三方依赖包,但由于 npm 默认的下载仓储地址是 https://registry.npmjs.org/,属于外国的网站,所以我们下载的时候可能会非常的慢。所以淘宝也做了一个 npm 的镜像网站(看这里)。

比如我们切换成淘宝镜像源,我们可以通过以下命令完成切换:

$ npm config set registry https://registry.npmmirror.com/# 或者直接在 npm 配置文件修改
$ npm config edit

        虽然实现了镜像源的切换,但是这个貌似有点复杂,我们还要记住这个镜像地址 

        SO,nrm 它来了

✨ 什么是nrm

nrm(npm registry manager)是一个NPM源管理器,它允许你快速地在如下NPM源间切换:

  • npm
  • cnpm
  • taobao
  • nj(nodejitsu)
  • rednpm
  • skimdb(skimdb)
  • custom

✨ 安装nrm

使用npm全局安装nrm:

npm install -g nrm

✨ 使用nrm

🔔 查看可用的源

nrm ls

这将列出可用的NPM源及当前所使用的源。其中 * 号表示当前使用的源。

 

 切换源

nrm use 源名

 例如:

nrm use taobao

这将切换到taobao源。

🔔 增加自定义源

nrm add 源名 源地址

 例如:

nrm add company http://registry.company.com

这将增加一个公司内部的私有源company。

🔔 删除自定义源

nrm del 源名

这将删除之前添加的自定义源。

🔔 测试源的响应时间

nrm test 源名

这将测试该源的响应时间。 

✨ 进阶应用

🔔 nrm的registry配置

nrm切换源的本质是修改了npm的registry配置。我们可以通过以下命令查看npm的registry地址:

npm config get registry

默认是官方的https://registry.npmjs.org/。当使用nrm切换到其他源后,这个地址会被修改。

nrm的registry信息存储在用户根目录下的.nrmrc文件中。我们可以直接修改这个文件来添加/修改自定义源。

🔔 永久使用源

nrm切换的源在关闭终端后会还原。如果要永久使用某个源,可以在~/.npmrc文件中添加:

registry=https://registry.npm.taobao.org

这样每次使用npm安装都会默认通过这个源安装。

🔔 nrm的权限控制

nrm从v1.0开始增加了通过token进行源访问控制的功能。

对于私有源,可以通过--auth选项设置一个访问token:

nrm add company http://registry.company.com --auth token

这样其他用户必须通过token才能访问这个源。

🔔 与yarn结合使用

yarn也有多个源可以切换。我们可以统一配置yarn的源:

yarn config set registry http://registry.company.com

然后nrm和yarn就可以共用这个私有源了。

🔔 使用nrm的安全性

使用公共源存在一定安全风险。建议企业构建私有源,同时通过源访问控制,进行安全管理。

大家在使用各种NPM源时,也需要注意校验安装包的完整性,保障代码安全。

 

✨ 结语

        nrm是一个非常便捷的NPM源管理工具,让我们可以一键切换不同的NPM源,特别是在国内可以使用taobao等国内源来提高安装速度。如果需要构建私有NPM源,nrm也提供了添加自定义源的方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UE 游戏模板】 游戏分类(RPG、RST等)

目录 0 引言1 游戏分类1.1 角色扮演游戏(RPG)1.2 第一人称射击游戏(FPS)1.3 即时策略游戏(RTS)1.4 VR游戏1.5 集换式卡牌游戏(TCG)1.5 塔防游戏(Tower Defense Games&…

【Web】Ctfshow Thinkphp5 非强制路由RCE漏洞

目录 非强制路由RCE漏洞 web579 web604 web605 web606 web607-610 前面审了一些tp3的sql注入,终于到tp5了,要说tp5那最经典的还得是rce 下面介绍非强制路由RCE漏洞 非强制路由RCE漏洞原理 非强制路由相当于开了一个大口子,可以任意调用当前框…

golang 图片加水印

需求: 1,员工签到图片加水印 2,水印文字需要有半透明的底色,避免水印看不清 3,图片宽设置在600,小于600或者大于600都需要等比例修改图片的高度,保持水印在图片中的大小和位置 4,处理…

2023年人工智能行业总结

在2023年,人工智能(AI)领域的发展犹如疾风骤雨,令人目不暇接。这一年中,AI领域经历了众多的变革,仿佛将过去十几年的积累在一夜之间彻底释放。今天,我们将通过三条主线来盘点今年AI领域最重要的…

GLTF编辑器-位移贴图实现破碎的路面

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 位移贴图是一种可以用于增加模型细节和形状的贴图。它能够在渲染时针…

JavaWeb——前端之JSVue

接上篇笔记 4. JavaScript 概念 跨平台、面向对象的脚本语言,使网页可交互与Java语法类似,但是不需要变异,直接由浏览器解析1995年Brendan Eich发明,1997年成为ECMA标准(ECMA制定了标准化的脚本程序设计语言ECMAScr…

配置git免密push

git免密码提交 创建.git-credential文件, 创建文件,进入文件,输入内容: cd ~ touch .git-credentials vim .git-credentials 输入内容 https://{username}:{password}gitee.com 实际输入中,用户名,密码没…

SQL Server的聚合函数、SQL Server的联合查询、SQL Server的左连接右连接内连接

一、SQL Server的聚合函数 在SQL Server中,常用的聚合函数包括: COUNT:计算指定列中非NULL值的数量。SUM:计算指定列中数值的总和。AVG:计算指定列中数值的平均值。MIN:计算指定列中的最小值。MAX&#x…

[CSP-J2019] 公交换乘

[CSP-J2019] 公交换乘 题目描述 著名旅游城市 B 市为了鼓励大家采用公共交通方式出行,推出了一种地铁换乘公交车的优惠方案: 在搭乘一次地铁后可以获得一张优惠票,有效期为 45 分钟,在有效期内可以消耗这张优惠票,免…

vue计算属性和侦听器

computed 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护,对于任何包含响应式数据的复杂逻辑,你都应该使用计算属性。 计算属性与methods区别: computed是带缓存的…

Unity Shader-真实下雨路面

Unity Shader-真实下雨路面 简介素材1.准备插件Amplify Shader Editor(这里我使用的是1.6.4最新版)2.贴纸和切图d 一、创建一个Shader Surface,实现气泡播放效果二、叠加一次气泡播放效果,使其看起来更多,更无序三、小…

新火种AI|AI正在让汽车成为“消费电子产品”

作者:一号 编辑:小迪 AI正在让汽车产品消费电子化 12月28日,铺垫许久的小米汽车首款产品——小米SU7正式在北京亮相。命里注定要造“电车”的雷军,在台上重磅发布了小米的五大自研核心技术。在车型设计、新能源技术以及智能科技…

手把手带你入门本地AI绘画(Stable Diffusion)

AIGC现如今可谓是如日中天,AI绘画算是其中最火的其中之一了。现在的AI绘图工具也是百家争鸣,不管是网页端,APP端,还是小程序端,都能看到各种各样的AI绘图工具,他们多是需要你发送关键词或绘图命令到他们的服务器,然后由服务器渲染完成之后返图给你,所以一定会占用他们的…

概率论相关题型

文章目录 概率论的基本概念放杯子问题条件概率与重要公式的结合独立的运用 随机变量以及分布离散随机变量的分布函数特点连续随机变量的分布函数在某一点的值为0正态分布标准化随机变量函数的分布 多维随机变量以及分布条件概率max 与 min 函数的相关计算二维随机变量二维随机变…

机器学习笔记--半监督节点分类:标签传播和消息传递

斯坦福大学CS224W图机器学习笔记 学习参考 CS224W公开课:双语字幕 斯坦福CS224W《图机器学习》课程(2021) by Jure Leskove 官方课程主页:官方主页 子豪兄精讲:斯坦福CS224W图机器学习、图神经网络、知识图谱 同济子豪兄 子豪兄公开代码:同济子豪兄CS224W公开课 基于…

4-链表-合并两个有序链表

这是链表的第4题,来个简单算法玩玩。力扣链接。 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2&#xff…

JS 嵌套循环之退出顶层循环

我们常常写循环的时候&#xff0c;可能会遇到嵌套循环&#xff0c;如果出现退出循环&#xff0c;一层还好&#xff0c;多层循环就费劲了&#xff0c;传统做法是加 flag&#xff0c;如下&#xff1a; for (let i 0; i < 10; i) {let flag falsefor (let j 0; j < 5; j…

【Angular 】Angular 模板中基于角色的访问控制

您是否在Angular模板中实现角色库访问控制&#xff1f;一种方法是通过*ngIf&#xff0c;但我不会选择该路径&#xff0c;因为它将在Angular模板中包含自定义函数&#xff0c;并且很难维护。正确的方法是使用Angular结构指令&#x1f680;. 什么是RBAC&#xff1f; 基于角色的…

MySQL常见面试题汇总

Java面试题总结 MySQL面试题 MySQL 字段类型 整数类型的 UNSIGNED 属性有什么用&#xff1f; CHAR 和 VARCHAR 的区别是什么&#xff1f; VARCHAR(100)和 VARCHAR(10)的区别是什么&#xff1f; DECIMAL 和 FLOAT/DOUBLE 的区别是什么&#xff1f; 为什么不推荐使…

自然语言处理(第16课 机器翻译4、5/5)

一、学习目标 1.学习各种粒度的系统融合方法 2.学习两类译文评估标准 3.学习语音翻译和文本翻译的不同 4.学习语音翻译实现方法 二、系统融合 以一个最简单的例子来说明系统融合&#xff0c;就是相当于用多个翻译引擎得到不同的翻译结果&#xff0c;然后选择其中最好的作为…