关于npm cnpm yarm pnmp

2023-10-27

npm

npm是什么?

  1. npm是node package manager的简称,node.js 的包管理器,用于node插件管理(包括安装、卸载、管理依赖等),pm 是随同 node.js 一起安装的包管理工具,能解决 node.js 代码部署上的很多问题。
  2. npm是一个包管理器,它让 javascript 开发者分享、复用代码更方便.在程序开发中我们常常需要依赖别人提供的框架,写js 也不例外。这些可以重复的框架代码被称作包(package)或者模块(module),一个包可以是一个文件夹里放着几个文件,同时有一个叫做 package.json的文件.

安装npm

在安装node.js的时候会相应地安装npm,因此检查本地的node和npm是否安装成功

更新npm

由于npm比node更新的频繁因此如果想要更新自己的npm可以执行
npm i -g npm

npm的重要命令

npm淘宝镜像

# 设置全局的npm淘宝镜像
npm config set registry https://registry.npm.taobao.org
# 也可以切换回默认全局镜像
npm config set registry https://registry.npmjs.org

npm常用命令简写说明

-g: 为 --global 的缩写,表示安装到全局目录里
-S: 为 --save 的缩写,表示安装的包将写入package.json里面的dependencies
-D: 为 --save-dev 的缩写,表示将安装的包将写入packege.json里面的devDependencies
i: 为install的缩写,表示安装

安装模块

npm init # npm 初始化当前目录
npm i # 安装所有依赖
npm i express # 安装模块到默认dependencies
npm i express -g # 会安装到配置的全局目录下
npm i express -S # 安装包信息将加入到dependencies生产依赖
npm i express -D # 安装包信息将加入到devDependencies开发依赖
npm i jquery@1.8.3 # 安装jquery指定的1.8.3版本

卸载模块

npm uninstall express # 卸载模块,但不卸载模块留在package.json中的对应信息
npm uninstall express -g # 卸载全局模块
npm uninstall express --save # 卸载模块,同时卸载留在package.json中dependencies下的信息
npm uninstall express --save-dev # 卸载模块,同时卸载留在package.json中devDependencies下的信息

查看命令

npm root # 查看项目中模块所在的目录
npm root -g # 查看全局安装的模块所在目录
npm list 或者 npm ls # 查看本地已安装模块的清单列表
npm view jquery dependencies # 查看某个包对于各种包的依赖关系
npm view jquery version # 查看jquery最新的版本号
npm view jquery versions # 查看所有jquery历史版本号(很实用)
npm view jquery # 查看最新的jquery版本的信息
npm info jquery # 查看jquery的详细信息,等同于上面的npm view jquery
npm list jquery 或 npm ls jquery # 查看本地已安装的jquery的详细信息
npm view jquery repository.url # 查看jquery包的来源地址

其他命令

npm cache clean # 清除npm的缓存
npm prune # 清除项目中没有被使用的包
npm outdated # 检查模块是否已经过时
npm repo jquery # 会打开默认浏览器跳转到github中jquery的页面
npm docs jquery # 会打开默认浏览器跳转到github中jquery的README.MD文件信息
npm home jquery # 会打开默认浏览器跳转到github中jquery的主页

cnpm

cnpm的官方介绍是:cnpm是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

cnpm 出现的目的

由于npmjs.org的服务器在国外(即在“墙”外),国(墙)内开发者做项目的时候,很多“包”的下载速度极慢,在这种环境下阿里巴巴为了众多开发者的便捷便挺身而出推出了淘宝镜像(即cnpm),它把npm官方的“包”全部搬到国内,供广大开发者使用。

如何配置cnpm

临时使用

npm --registry https://registry.npm.taobao.org install [依赖的名称]

持久使用

npm config set registry https://registry.npm.taobao.org
检查是否配置成功
npm config get registry

安装cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm如何使用

安装模块
registry.npm.taobao.org 安装所有模块. 当安装的时候发现安装的模块还没有同步过来, 淘宝 NPM 会自动在后台进行同步, 并且会让你从官方 NPMregistry.npmjs.org进行安装. 下次你再安装这个模块的时候, 就会直接从 淘宝 NPM 安装了
$ cnpm install [name]
同步模块
直接通过 sync 命令马上同步一个模块, 只有 cnpm 命令行才有此功能:
$ cnpm sync connect
其它命令
支持 npm 除了 publish 之外的所有命令, 如:
$ cnpm info connect

yarm

YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManager启动可以占用一定资源的任务。

ResourceManager(RM):全局资源管理器,负责整个系统的资源管理和分配。
由多个组件组成:
调度器(Scheduler)
 调度器根据容量,队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),将系统中的资源分配给各个正在运行的应用。这里的调度器是一个“纯     调度器”,因为它不再负责监控或者跟踪应用的执行状态等,此外,他也不负责重新启动因应用执行失败或者硬件故障而产生的失败任务。调度器仅根据各个应用的资源     需求进行调度,这是通过抽象概念“资源容器”完成的,资源容器(Resource Container)将内存,CPU,磁盘,网络等资源封装在一起,从而限定每个任务使用的资源量。
  应用管理器(ApplicationsManager,ASM)
 ASM主要负责接收作业,协商获取第一个容器用于执行AM和提供重启失败AM container的服务

ASM负责管理系统中所有应用程序的AM,正如上一节所述,ASM负责启动AM,监控AM的运行状态,在AM失败时对其进行重启等。

为了完成该功能,ASM主要有以下几个组件:

(1)SchedulerNegotiator:与调度器协商容器资源,并返回给AM

(2)AMContainerManager:告知NM,启动或者停止某个AM的容器

(3)AMMonitor:查看AM是否活着,并在必要的时候重启AM
NodeManager(NM):每个节点上的资源和任务管理器,定时向RM汇报本节上的资源使用情况和各个Container的运行状态,接受并处理来自AM的Container启动/停止等各种请求。

ApplicationMaster(AM):用户提交每个应用程序均包含一个AM,主要功能与RM调度器协商以获取资源,进一步分配给内部的任务,与NM通信启动/停止任务,监控任务的运行状态。

每个应用程序均会有一个AM,主要职责有:

(1)与调度器协商资源

(2)与NM合作,在合适的容器中运行对应的task,并监控这些task执行

(3)如果container出现故障,AM会重新向调度器申请资源

(4)计算应用程序所需的资源量,并转化成调度器可识别的格式(协议)

(5)AM出现故障后,ASM会重启它,而由AM自己从之前保存的应用程序执行状态中恢复应用程序。

注:在MapReduce中,由于AM会定时的保存job的运行时状态,因此,当AM重启时可以恢复对应的job,按照粒度有三种策略:
<1>整个作业重新计算

<2> 保存已经完成的map task和reduce task,只重新计算未完成的task

<3> 保存task的进度,从task断点处开始计算,如:某个task完成了20%,则AM重启后,让该task从20%处开始计算。

Contanier:是YARN中资源的抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。当AM想RM申请资源时,RM为AM返回的资源便是用Container表示的。

(1)Container是YARN中资源的抽象,它封装了某个节点上一定量的资源(CPU和内存两类资源)。它跟Linux Container没有任何关系,仅仅是YARN提出的一个概念(从实现上看,可看做一个可序列化/反序列化的Java类)。

(2)Container由ApplicationMaster向ResourceManager申请的,由ResouceManager中的资源调度器异步分配给ApplicationMaster;

(3)Container的运行是由ApplicationMaster向资源所在的NodeManager发起的,Container运行时需提供内部执行的任务命令(可以使任何命令,比如java、Python、C++进程启动命令均可)以及该命令执行所需的环境变量和外部资源(比如词典文件、可执行文件、jar包等)。
另外,一个应用程序所需的Container分为两大类,如下:

(1)运行ApplicationMaster的Container:这是由ResourceManager(向内部的资源调度器)申请和启动的,用户提交应用程序时,可指定唯一的ApplicationMaster所需的资源;

(2)运行各类任务的Container:这是由ApplicationMaster向ResourceManager申请的,并由ApplicationMaster与NodeManager通信以启动之。

以上两类Container可能在任意节点上,它们的位置通常而言是随机的,即ApplicationMaster可能与它管理的任务运行在一个节点上。
一个应用程序在YARN上的运行步骤

步骤1:用户将应用程序提交到ResourceManager上;

步骤2:ResourceManager为应用程序ApplicationMaster申请资源,并与某个NodeManager通信,以启动ApplicationMaster;

步骤3:ApplicationMaster与ResourceManager通信,为内部要执行的任务申请资源,一旦得到资源后,将于NodeManager通信,以启动对应的任务。

步骤4:所有任务运行完成后,ApplicationMaster向ResourceManager注销,整个应用程序运行结束。

pnmp

PNMP,全称“Proactive Network Maintenance using Pre-equalization”,即“基于预均衡的主动网络运维”,是PNM主动运维的一种技术手段。为此,CableLabs专门制定规范《CM-GL-PNMP-V03-160725》,用于实现DOCSIS主动网络运维
PNMP技术,主要通过补偿上行信道中的线性失真(包括频率响应、微反射、群延时等),来保证上行信号质量。简单来说是,CMTS根据CM的测距消息,评估CM的信号质量,生成预均衡参数,下发给CM。CM的预均衡器会根据预均衡参数进行信号增益,抵消上行线路上的损耗。这样在CMTS收到信号时,线性失真的问题会大幅缓解,从而有效提升信号质量。

pnmp应用

根据PNMP原理,衍生出不同的应用角度,主要包括健康指标MTR、频响曲线分组、故障点位置TDR三类

MTR

CM的预均衡器有24个可调节参数,网络正常时,主参数(主抽头)能量远大于其他参数,但当网络劣化时,其他参数能量会大幅增加以补偿增益。根据这一原理,可用主参数与其他参数的能量比来衡量网络健康状况。主参数能量越高,其他参数越低,MTR值越大,网络越健康。建议MTR值保持在20dB左右,小于10dB就说明网络有明显故障。

频响曲线分组

网络正常时,CM的上行信号经过链路后,在不同的频率范围内,变化幅度都比较小(一条直线)。网络异常的CM上行信号频响曲线会有明显变化

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于npm cnpm yarm pnmp 的相关文章

  • 循环遍历数组并删除项目,而不中断 for 循环

    我有以下 for 循环 当我使用splice 要删除一个项目 我发现 秒 未定义 我可以检查它是否未定义 但我觉得可能有一种更优雅的方法来做到这一点 我们的愿望是简单地删除一个项目并继续 for i 0 len Auction auctio
  • 如何检查是否存在可能的路径?

    我正在开发一个基于 javascript 的实验性游戏 玩家必须在二维平铺地图上移动才能退出 请随意检查这个小提琴并演奏 http jsfiddle net moonlife 74vLd 我只是随机放置障碍物 但有时障碍物会挡住玩家和出口之
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 如何在 mongodb 聚合管道中使用 Javascript 对象?

    我有一个 JS 对象norm我想在 mongo 聚合管道中使用它 如下所示 var norm 1 1 2 1 16 3 1 413 4 1 622 5 1 6 6 1 753 7 3 001 8 2 818 9 3 291 10 2 824
  • jQuery 可以操作插入的元素吗?

    我是 jQuery 的新手 我认为 jQuery 可以操作由代码添加的元素是合理的 但我发现现在还不能 function addVideo click function publisher append div div
  • React中如何触发同级组件的函数?

    I am new to front end world and could not figure out how to trigger a function from a sibling component Lets say I have
  • 调用类实例方法 onclick javascript

    我有一个 javascript 文件 其中包含包含方法函数的类 我想知道如何从 onClick 事件调用类实例方法 function MyClass this instanceData Display Me this DisplayData
  • 需要参数的addEventListener(和removeEventListener)函数

    我需要向 8 个对象 手掌 添加一些侦听器 这些对象是相同的 但行为必须根据它们的位置而改变 我有以下 丑陋的 代码 root palmsStatus B B B B B B B B if root palmsStatus 0 N root
  • Visual Studio 改变 Ctrl-K-D 的工作方式

    In Visual Studio I m using 2012 is there any way of editing the way that Ctrl K D combinations handles its Auto Formatti
  • 如何在 jQuery 中将标题转换为 URL slug?

    我正在 CodeIgniter 中开发一个应用程序 我试图在表单上创建一个字段来动态生成URL slug 我想做的是删除标点符号 将其转换为小写 然后用连字符替换空格 例如 Shane s Rib Shack 将变成 shanes rib
  • “require(...)”是常见的 JavaScript 模式还是库函数?

    我通常发现这是 node js 脚本 模块以及 phantomJS casperJS 等中的第一行 我很好奇 这是否是服务器端 javascript SSJS 的常见模式 类似于 include在 C C 中或import在 Java 中
  • Pjax动画

    我终于让 pjax 工作了 但我还有另一个问题 如何添加一些 jquery 动画 如淡出 幻灯片旧内容和淡入 幻灯片新内容 默认情况下 pjax 只是更改内容 没有任何好看的效果 任何帮助将非常感激 此致 基本上 你有一堆事件 https
  • 修改 Twitter 帖子上可编辑 Div 的内容

    我正在编写一个 chrome 扩展 它可以帮助用户在 Twitter 上输入内容 当在 twitter 上写推文时 twitter 会打开一个可编辑的 div 容器 当用户输入内容时 twitter 大概正在使用某些网络框架 会生成子 di
  • 非法使用break语句; javascript

    当这个变量达到一定数量时 我希望循环停止 但我不断收到错误 未捕获的语法错误 非法的中断语句 function loop if isPlaying jet1 draw drawAllEnemies requestAnimFrame loop
  • 如何根据另一个下拉列表中的选择动态填充下拉列表中的选项?

    我有一个表 其中包含类别信息 例如产品 我已将它们列在下拉菜单中 现在 我需要做的是 在下一个下拉菜单中列出所选类别的子类别 我希望 javascript 是必需的 但我对 javascript 还不太熟悉 将非常感谢您的帮助 你应该使用
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • jQuery 中什么函数相当于 .SelectMany()?

    让我解释一下 我们知道 jQuery 中的映射函数充当 Select 如 LINQ 中 tr map function return this children first returns 20 tds 现在的问题是我们如何在 jQuery
  • 如何从除自身之外的其他(blazor)库引用js/css文件?

    我如何引用 使用位于引用的 blazor 项目中的 css cs 文件 该文件与 host cshtml 中的当前项目不同 我的意思是
  • 在 React Web 应用程序中使用 createjs-soundjs

    我想用https www npmjs com package createjs soundjs https www npmjs com package createjs soundjs在 React Web 应用程序上播放声音 我正常安装了
  • 区分 NaN 输入和输入类型为“number”的空输入

    我想使用 type number 的表单输入 并且只允许输入数字

随机推荐

  • Python字符串与Bytes之间的互相转换

    Python字符串与Bytes之间的互相转换 byte转字符串 方式一 data b x31 x32 x33 print data b 123 strdata data decode gbk print strdata 123 strdat
  • .Net core基于xUnit的单元测试查看测试覆盖率

    写代码如何保证代码质量 基本大家都知道要做单元测试 那如何知道你单元测试是不是测试到了所有代码场景呢 这就要通过测试覆盖率来体现了 测试覆盖率 一般来说主要是Line代码行数覆盖率 同样还会有Branch分支覆盖率 Method方法覆盖率等
  • 使用QFrame类实现界面美化

    使用QFrame类实现界面美化 QFrame类是Qt框架中用于创建和显示矩形框架的基本组件 它可以用于美化界面 分割界面等多种场景 在Qt中使用QFrame类非常简单 我们只需要在ui文件中拖动一个QFrame控件并在代码中设置它的属性即可
  • 一刷总结!

    前面都还算顺利 走到贪心和动态规划的时候就感觉比较吃力了 就是那种怎样都感觉自己想不出来的 还需要多多练习和多多理解 有了这个监督之后 已经养成了每天要写算法的习惯 hh不错 希望能继续坚持下去 秋招能有一个好结果
  • Java-1.5

    题目描述 编写程序 计算 9 5 4 5 2 5 3 45 5 3 5 代码 法1 public class Calculate public static void main String args final double a 9 5
  • linux网络编程(三) TCP通信时序与多进程/线程并发服务器的编写

    文章目录 1 TCP通信时序 2 滑动窗口 TCP流量控制 3 出错处理封装函数 4 多进程并发服务器编写 5 多进程并发服务器编写 4 TCP状态转换 5 半关闭 6 2MSL 6 1 2MSL 6 2 端口复用 1 TCP通信时序 下图
  • 用python写注册登录界面web_用Python实现web端用户登录和注册功能

    这篇文章主要介绍了用Python实现web端用户登录和注册功能的教程 需要的朋友可以参考下 用户管理是绝大部分Web网站都需要解决的问题 用户管理涉及到用户注册和登录 用户注册相对简单 我们可以先通过API把用户注册这个功能实现了 RE M
  • GD32F303调试小记(零)之工程创建与编译

    前言 干这行的朋友都知道 真正拿单片机做项目时 作为软件编写人员 你所掌握的肯定不止一款单片机 又或者说你必须有能独立上手新单片机的能力 这里的新指的是对你个人来说是从未接触过的或者不熟悉的 而不一定是说这个单片机有多新 而调试一款新的单片
  • 二分类模型评价指标

    二分类模型指标 混淆矩阵 TP 实际为正预测为正 FP 实际为负但预测为正 TN 实际为负预测为负 FN 实际为正但预测为负 准确率 A c c u r a
  • kafka入门安装及消息发送接受初体验(附源码)

    这里是weihubeats 觉得文章不错可以关注公众号小奏技术 文章首发 拒绝营销号 拒绝标题党 官方文档 https kafka apache org quickstart 版本 3 5 0 安装 这里我们提供两种安装方式 一种是编译好的
  • Async异步处理【Springboot】

    简单实现异步处理 springboot异步处理 先建立一个controller目录 再建一个AsynController java 建立一个service目录 再建立一个AsynController java 启动项目 效果 1 在三秒以后
  • 电子科技大学软件工程期末复习笔记(四):软件设计

    目录 前言 重点一览 软件工程设计 软件设计定义 软件设计包含的两类活动 软件设计包涵 软件的质量属性 各种设计技术 程序结构 深度 宽度 扇入 扇出 完整的设计规格 软件体系架构 用户界面设计的3条原则 用户界面设计的3种分析 结构化设计
  • 5. zksnark 几种实现算法性能对比

    像 zk SNARK 这样的零知识证明有很多应用 Zcash利用零知识证明 来保护隐私 Coda和Mir利用零知识证明将整个区块链压缩到只有几K字节 0x和Matter则利用零知识证明将许多交易封装为以太坊 上的单一证明 1 可信设置 传统
  • Jumpserver 堡垒机

    一 Jumpserver简介 跳板机概述 跳板机就是一台服务器 开发或运维人员在维护过程中首先要统一登录到这台服务器 然后再登录到目标设备进行维护和操作 跳板机缺点 没有实现对运维人员操作行为的控制和审计 使用跳板机的过程中还是会出现误操作
  • unity的常见错误处理

    黄色提示 文件丢失 第一种情况 显示文件丢失 就去把文件拖到丢失的目录下 第二种情况 代码错误 无法识别 一般是调用的参数打错 红色提示 无法识别 当unity出现下列代码的情况时 we can t assign a new guid be
  • rabbitmq-给消息设置过期时间(九)

    TTL 全称 Time To Live 存活时间 过期时间 当消息到达存活时间后 还没有被消费 会被自动清除 RabbitMQ可以对消息设置过期时间 也可以对整个队列 Queue 设置过期时间 方式一 通过给队列配置属性设置消息的过期时间
  • js(art-­template、cookie、session、分页、注册、form、audio、video、移动端event、touch.js)

    art template 1 介绍 art template是一个简单且超快速的模板引擎 可通过范围内预先声明的技术优化模板渲染速度 从而实现接近JavaScript极限的运行时性能 同时它支持nodeJS和浏览器 2 基本使用 引入art
  • k8s之PV、PVC和StorageClass

    PV 什么是PV PV 描述的 则是一个具体的 Volume 的属性 比如 Volume 的类型 挂载目录 远程存储服务器地址等 创建PV 使用yaml来定义PV apiVersion v1 kind PersistentVolume me
  • Java多线程简析——Synchronized(同步锁)、Lock以及线程池

    Java多线程 Java中 可运行的程序都是有一个或多个进程组成 进程则是由多个线程组成的 最简单的一个进程 会包括mian线程以及GC线程 线程的状态 线程状态由以下一张网上图片来说明 在图中 红框标识的部分方法 可以认为已过时 不再使用
  • 关于npm cnpm yarm pnmp

    npm npm是什么 npm是node package manager的简称 node js 的包管理器 用于node插件管理 包括安装 卸载 管理依赖等 pm 是随同 node js 一起安装的包管理工具 能解决 node js 代码部署