2021-09-12 npm,yarn和cnpm介绍,常用命令,优缺点和区别?

本文介绍了npm、cnpm和yarn的基本概念、用途、安装与更新方法,以及它们之间的区别。npm是Node.js的包管理器,常见命令包括安装、卸载和管理模块。cnpm是淘宝团队开发的国内镜像,解决npm的不稳定问题。yarn由Facebook等公司推出,解决了npm速度慢和一致性问题,提供了更快、更一致的安装体验。
摘要由CSDN通过智能技术生成

一.npm

1.定义

npm全程是NodeJS Package Manager,即Nodejs包管理器,它是和Node一起安装的

2.用途
  • 从npm服务器下载上面的包或者命令行程序到本地
  • 把自己写好的包或命令行上传到npm服务器供别人使用
3.安装

npm无需特意安装,会在安装node时一起安装好

更新
  • 升级到最新版:sudo npm install npm@lastest -g
  • 在Windows下升级版本:npm install npm -g
  • 查看当前版本:npm -v
如何使用npm命令安装依赖模块?
  • 下载命令npm install <Module Name>
  • 安装完毕后可以在项目node-modules目录中看到
  • 在入口文件mian.js中引入:var modulename=require("Module Name")
4.全局安装和本地安装

npm的包安装可以分为全局安装(global)和本地安装(local)
(安装命令带 -g就是全局安装,不带就是本地安装)

本地安装

本地安装会将安装包放在node_modules目录下,然后通过require()来引入本地安装的包

全局安装

全局安装会将安装包放到电脑上,一般会放在usr/local或者node的安装目录下,
通过全局安装的包可以直接在命令行使用

5.卸载,搜索和更新模块

以express为例

  • 卸载:npm uninstall express
  • 更新:update express
  • 搜索:npm search express
6.创建和发布模块
  • 创建模块:npm init
  • 注册用户:npm adduser,输入用户名,密码,邮箱
  • 发布模块:npm publish
7.package.json文件介绍

package.json用于定义包的属性,位置在模块的目录下
文件常用属性:

name - 包名。
version - 包的版本号。
description - 包的描述。
homepage - 包的官网 url 。
author - 包的作者姓名。
contributors - 包的其他贡献者姓名。
dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js
keywords - 关键字
8.package.json与 package-lock.json 的区别

当项目中已有 package-lock.json 文件,在安装项目依赖时,将以该文件为主进行解析安装指定版本依赖包,而不是使用 package.json 来解析和安装模块。
因为 package 只是指定的版本不够具体,而package-lock 为每个模块及其每个依赖项指定了版本,位置和完整性哈希,所以它每次创建的安装都是相同的。
无论你使用什么设备,或者将来安装它都无关紧要,每次都应该给你相同的结果。

当项目中已经存在package-lock.json文件的情况下,
在安装项目依赖时,将以该文件为主进行解析安装指定版本安装包,
而不是使用package.json来解析和安装模块

由于package.json中指定的版本不够具体,
因此在package-lock.json中,为每一个模块和每一个依赖项都指定一个版本,位置和完整的哈希
这样做的好处是:它每次创建的安装版本都是相同的,可以使项目在不同的设备上跑通

二.cnpm

1.介绍

npm软件包管理器部署在国外服务器,因此可能不太稳定,安装依赖包容易报错,
基于此,淘宝团队开发了cnpm

2.命令
  • 安装模块:cnpm install [name]
  • 同步模块:cnpm sync express
  • 其他命令:cnpm info express

三.yarn

1.介绍

yarn是由Facebook、Google、Exponent 和 Tilde 联合推出的JS包管理工具,
是为了弥补npm的一些缺点而出现の

2.命令
  • 安装yarn:npm install -g yarn
  • 查看版本:yarn --version
  • 其他命令:
git clone
yarn install
yarn run serve
yarn run dev

四.对比

1.npm的缺点
  • 速度慢:npm 按照队列执行安装每个 package,只有当前 package 安装完成之后,才会进行后面的安装。
  • 同一个项目,npm 安装的时候无法保持一致性,由于 package.json 文件中版本号的特点,下面三个版本号在安装的时候代表不同的含义:
5.0.3, //安装指定的5.0.3版本~5.0.3, //安装5.0.X中的最新版本^5.0.3//安装5.X.X中的最新版本
  • npm 安装的时候,一个包抛出错误,npm 会继续下载安装包,而且因为 npm 会把所有的日志输出到终端,有关错误包的错误信息就会淹没在 npm 打印的警告中,你甚至不会发现错误的产生。
2.yarn 的优点
  • 速度快:yarn 执行 package 的安装时,会同步执行所有任务,提高了性能;如果已经安装过某一个包,yarn 再次安装此包时无需互联网,直接安装本地缓存的依赖项。
  • 安装版本统一。
  • 更简洁的输出,默认情况下,只打印必要的输出信息。
  • 更好的语义化:如 yarn add/remove
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端OnTheRun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值