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

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

ruisui885个月前 (01-26)技术分析44

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等” 的相关文章

USB电池充电基础:应急指南

USB为便携设备供电与其串行通信功能一样,已经成为一种标准应用。如今,USB 供电已经扩展到电池充电、交流适配器及其它供电形式的应用。应用的普及带来的一个显著效果是便携设备的充电和供电可以互换插头和适配器。因此,相对于过去每种装置都采用专用适配器的架构相比,目前的解决方案允许采用多种电源进行充电。毋...

学前端,这30个CSS选择器,你必须熟记

你学会了基本的id,class类选择器和descendant后代选择器,然后就觉得完事了吗?如果这样,你就会错过许多灵活运用CSS的机会。虽然本文提到的许多选择器都属于CSS3,并且只能在现代的浏览器中使用,但学会这些是大有好处的。什么是CSS选择器呢?每一条css样式定义由两部分组成,形式如下:[...

Excel中的FILTER函数详细介绍及使用示例

在Excel中处理大量数据时,经常需要根据特定条件筛选出符合条件的数据行或列。这正是Excel的FILTER函数发挥作用的地方。FILTER函数是Excel中一个非常强大的工具,它可以基于一个或多个条件动态地过滤数据,使数据分析和报告制作变得更加高效和准确。本文将详细介绍FILTER函数的用法,并提...

一文让你彻底搞懂 vue-Router

路由是网络工程里面的专业术语,就是通过互联把信息从源地址传输到目的地址的活动。本质上就是一种对应关系。分为前端路由和后端路由。后端路由:URL 的请求地址与服务器上的资源对应,根据不同的请求地址返回不同的资源。前端路由:在单页面应用中,根据用户触发的事件,改变URL在不刷新页面的前提下,改变显示内容...

三、Uni-app + vue3 页面如何跳转及传参?

Vue 项目往往需要使用 vue-router 插件,刚开始入门 Uni-app + Vue3 项目的同学,会不会想着路由使用 vue-router V4 版本不就可以了吗?不怕大家笑话,我就是这样想的,毕竟我是第一次使用 Uni-app ,由于孕期记性贼差,所以我决定写成笔记,加深记忆。uni-a...

前端路由简介以及vue-router实现原理

作者:muwoo 来源:https://zhuanlan.zhihu.com/p/37730038后端路由简介路由这个概念最先是后端出现的。在以前用模板引擎开发页面时,经常会看到这样http://www.xxx.com/login 大致流程可以看成这样:浏览器发出请求服务器监听到80 端口(或443...