当前位置:首页 > 技术分析 > 正文内容

一文搞定nodeJS相关的nvm、npm、nrm、yarn、npx等

ruisui883个月前 (01-26)技术分析17

node、npm等相关概念

node 和 npm 相关的名词很多,比较容易混淆。

下面对这些名词做个统一梳理

  • node:一个基于 Chrome V8 引擎的 JavaScript 运行时;提供了 JavaScript 的运行环境。可以直接到 node 官网下载安装
  • nvm:node.js 版本管理工具;不同项目可能需要不同版本的 node;可以使用 nvm 来管理 node.js 版本
  • npm:node.js 包管理工具;用来管理 node.js 中的第三方插件;新版本的 node 在安装的时候,会自动安装对应版本的 npm
  • nrm:npm 源的管理工具,可以用来方便的切换 npm 源
  • cnpm:使用的是淘宝的源。用法跟 npm 完全一致。cnpm 经常会有问题,所以在很多地方不推荐使用
  • yarn:经过重新设计的崭新的 npm 客户端;运行速度显著提升,整个安装时间比 npm 少。一般推荐使用 yarn 代替 npm
  • npx:一个 npm 包执行器。我们可以使用 npx 来执行各种命令。

使用 nvm 管理 node.js 版本

参考:使用 nvm 管理 node.js 版本

npm

参考:npm常用命令操作

使用nrm管理npm源

当使用官方 npm 源安装各种包比较慢的时候,建议修改 npm 源地址

npm 相关参考:npm常用命令操作

推荐使用 nrm 管理 npm 源

nrm 是专门用来管理和快速切换私人配置的 registry

推荐全局安装

npm install nrm -g

常用命令

  • nrm ls :查看默认配置,带 * 号即为当前使用的配置
  • nrm current :查看当前使用的是哪个源
  • nrm use [源的别名] :切换到某个源
  • nrm add [源的别名] [源的地址] :添加私有源。eg: nrm add qihoo http://registry.npm.360.org
  • nrm test [源的别名] :测试某个源
  • nrm del [源的别名] :删除某个源

cnpm

npm 安装插件是从国外服务器下载,受网络影响大,可能出现异常。

淘宝团队复制了一个完成的 npmjs.org 镜像,用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。即: cnpm

cnpm 跟 npm 用法完全一致,只是在执行命令时将 npm 改为 cnpm

推荐全局安装cnpm

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

安装完成后,可以使用命令 cnpm -v 检查是否安装成功。

如果能正常显示版本号,表示已安装成功。如果显示 不是内部或者外部命令 ,则需要手动将安装目录添加到系统变量中

yarn

yarn 是经过重新设计的崭新的 npm 客户端;运行速度显著提升,整个安装时间比 npm 少

像 npm 一样, yarn 使用本地缓存。与 npm 不同的是, yarn 无需互联网连接就能安装本地缓存的依赖项,它提供了离线模式。这个功能在2012年的 npm 项目中就被提出来过,但一直没有实现。

一般推荐使用 yarn 代替 npm

运行以下命令即可安装 yarn

npm install yarn -g

yarn 和 npm 命令对比如下

npm

yarn

描述

npm init

yarn init

初始化项目

npm install

yarn

yarn install

安装依赖

npm install xxx

npm install xxx --save

npm install xxx -S

yarn add xxx

安装某依赖,

写入dependencies

npm install xxx --save-dev

npm install xxx -D

yarn add xxx --dev

yarn add xxx -D

安装某依赖,

写入devDependencies

npm install xxx -g

yarn global add xxx

全局安装某依赖

npm update xxx

yarn upgrade xxx

更新某依赖

npm uninstall xxx

yarn remove xxx

删除某依赖

npm cache clean

yarn cache clean

清除全局缓存依赖包

npm run dev

yarn dev

yarn run dev

执行 dev 命令

npx

npx 是 npm v5.2.0 引入的一条命令( npx ),是一个 npm 包执行器。我们可以使用 npx 来执行各种命令。

主要有以下特点:

  • 临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
  • 可以执行依赖包中的命令,安装完成自动运行。
  • 自动加载 node_modules 中依赖包,不用指定 $PATH
  • 可以指定 node 版本、命令的版本,解决了不同项目使用不同

npx 执行流程如下:

  • node_modules/.bin 路径检查对应的命令是否存在,找到之后执行;
  • 没有找到,就去环境变量 $PATH 里面,检查对应命令是否存在,找到之后执行;
  • 还是没有找到,自动下载一个临时的依赖包最新版本在一个临时目录,然后再运行命令,运行完之后删除,不污染全局环境。

安装过程很简单,直接运行以下命令即可

npm install npx -g

npx 使用场景

  • 执行本地命令

比如项目下安装了 mocha ,可以直接用 npx 执行

npx mocha --version
  • 一次性执行命令

比如以下命令,npx 将 create-react-app 下载到一个临时目录,使用以后再删除

不用全局安装 create-react-app ,运行后不会污染全局环境

npx create-react-app myApp
  • 切换 node 版本

要运行的命令不兼容当前的 node 版本时,可使用 npx 切换版

npx 的 -p 选项指定要安装的包,并将其添加到正在运行的 $PATH 中

npx node@12 -v
  • 开启静态服务器

使用 http-server 或者 serve 开启静态服务器。方便本地预览打包后的项目

npx http-server           # 默认返回根目录下index.html

npx http-server -p 3000   # 也可以直接指定端口

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/555.html

标签: 卸载npm包
分享给朋友:

“一文搞定nodeJS相关的nvm、npm、nrm、yarn、npx等” 的相关文章

专为系统管理员设计的LINUX发行版SYSLINUXOS

SysLinuxOS 承诺“结束为管理任务寻找正确工具”的局面,提供“非常广泛的软件选择,特别是用于使用互联网”。译自 SysLinuxOS, A Linux Distro for System Administrators,作者 David Cassel。全球各地的系统集成商正在发现 SysLin...

BuildKit 镜像构建工具

#暑期创作大赛#快速开始 对于 Kubernetes 部署,请参阅examples/kubernetes。BuildKit 由buildkitd守护进程和buildctl客户端组成。虽然buildctl客户端可用于 Linux、macOS 和 Windows,但buildkitd守护程序目前仅适用于...

HTML5+眼球追踪?黑科技颠覆传统手机体验

今天,iH5工具推出一个新的神秘功能——眼动追踪,可以通过摄像头捕捉观众眼球活动!为了给大家具体演示该功能的使用,我做了一个案例,供大家参考。实际效果如下:案例比较简单,就是通过眼动功能获取视觉焦点位置,剔除用户看中的牌。现在,舞台的属性中多了一个“启用眼动”的选项,另外,还多了一个“启用摄像头”的...

Vue实战篇|使用路由管理用户权限(动态路由)

权限控制是后台管理系统比较常见的需求,如果我们需要对某些页面的添加权限控制的话,那我们可以在路由管理中的权限做一些校验,没有通过权限校验的给出相应的提示或者直接跳转到报错页面。跟着我一起来学vue实战篇路由管理权限吧!权限校验函数getCurrentAuthority()函数用于获取当前用户权限,一...

vue 开发规范

项目运行指南(#项目运行指南)开发本地环境(#开发本地环境)开发相关插件/工具(#开发相关插件工具)开发规范(#开发规范)vue(#vue)【数据流向】(#数据流向)【慎用全局注册】(#慎用全局注册)【组件名称】(#组件名称)【组件中的 CSS】(#组件中的-css)【统一标签顺序】(#统一标签顺序...

第99p,用简单案例说明同步与异步的区别

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第99篇文章,第三阶段的课程:Python进阶知识:用一个简单的案例说明同步与异步之间的区别,以及异步的效率。异步的原理已经在前面的文章讲过,本文主要比较同步与异步的差异;使用一个模拟下载文件的案例,比较同步与异步在效率上的差异。1、使用同步的...