nodeJS相关的nvm、npm、nrm、yarn、npx等

nodeJS相关的nvm、npm、nrm、yarn、npx等

摘自:https://www.jianshu.com/p/1a0d58cf4160

node、npm等相关概念#

nodenpm 相关的名词很多,比较容易混淆。

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

  • 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 yarnyarn install 安装依赖
npm install xxxnpm install xxx --savenpm install xxx -S yarn add xxx 安装某依赖,写入dependencies
npm install xxx --save-devnpm install xxx -D yarn add xxx --devyarn 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 devyarn run dev 执行 dev 命令

npx#

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

主要有以下特点:

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

npx 执行流程如下:

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

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

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   # 也可以直接指定端口
posted @   zhangj9  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
主题色彩