npm、cnpm、pnpm和yarn使用(官网、安装、命令行、上传自己的包、包版本号详解、更新卸载包、查看所有版本、同等依赖peer、可选依赖optional)

目录

npm

官网

npm install packageName

npm i packagename@版本号

安装git上发布的包

npm ci

注意(对比npm i)

npm outdated

npm update

npm init -y

 npm list

npm list | grep packageName

npm install --production

npm view packagename versions

npm config get registry

npm config set registry https://registry.npm.taobao.org

上传自己的包

npm adduser

npm publish

cnpm

安装

缺点

pnpm

安装

相关概念 

硬链接(Hard Link)

软连接(Symbolic Link)

存储方式

官网与详细介绍

yarn

中文官网

安装

命令行

yarn add packageName@版本号

yarn|yarn install

yarn upgrade packageName@版本号

yarn remove packageName

yarn dlx mocha --version


npm

NodeJS包管理和分发工具。

官网

npm

npm install packageName

安装依赖包。

--S(--save):默认的,用于写入package.json生产环境文件。

-D(--save-dev):用于写入package.json的开发环境文件。

-g(-global):全局安装,非-g的都为局部安装。下面是-g安装目录

mac全局安装目录为/User/你的用户名/.nvm/versions/node/nvm版本/bin

window全局安装目录为C:\Users\你的用户名\AppData\Roaming\npm\node_modules

局部安装通过node_modulet/.bin/packageName运行非-g下载的模块命令。

npm i packagename@版本号

自动安装指定版本的包,除指定的版本号,其余版本号自动取最新的。

版本号包括:主版本号.次版本号.补丁号

package.json中^指锁定主版本号,~指锁定主版本号和次版本号,空指锁定整个版本号,*指取最新版本

安装git上发布的包

# 这样适合安装公司内部的git服务器上的项目
npm install git+https://git@github.com:lurongtao/gp-project.git

# 或者以ssh的方式
npm install git+ssh://git@github.com:lurongtao/gp-project.git

下图红框是通过git安装的包

 

npm ci

根据package-lock.json(npm i后生成的文件,用于锁定版本和记录依赖)文件安装依赖。相比npm i速度提升明显。也支持--production参数。

注意(对比npm i)

  • npm ci 不能用来安装单个依赖,只能用来安装整个项目的依赖
  • npm ci 会检测如果 node_modules 已经存在,则先删除再进行安装操作
  • 不会更新 package.json 或 package-lock.json 文件,整个安装过程是锁死的。
  • package-lock.json 、npm-shrinkwrap.json 文件都不存在会报错
  •  lock 与 package.json 中版本不匹配,npm ci 直接报错中断,而不是更新 lock 文件。

推荐使用:npm ci --cache .npm --quiet --no-progress 关闭log和进度,可加快下载。

npm outdated

显示package.json中锁定版本位下其它版本位不是最新的包。

npm update

将package.json中包的锁定版本位下的其它版本位为变为最新的。

npm init -y

生成package.json模块配置文件。

此时通过npm run dev命令相当于命令行中输入./node_modules/.bin/gulp -v。

注意下面的红色框部分可以去除,运行npm run dev命令时会自动到全局去找对应的文件,没有就会去当前路径下的node_modules中寻找。

在scripts上写的脚本,通过命令行运行的环境是node的环境。

 npm list

 查看所有安装包的版本和依赖的安装包版本。

npm list | grep packageName

查看指定安装包的版本和依赖的安装包版本

npm install --production

只安装package.json中的生产环境包。

npm view packagename versions

查看指定包的所有版本

npm cache clean --force

清除npm缓存(下载出错后一直下载不了时使用)

npm config get registry

获取远程仓库路径。

npm config set registry https://registry.npm.taobao.org

设置远程仓库地址为淘宝镜像路径,默认的远程仓库地址为http://registry.npmjs.org。

module.exports = 变量名

也可以直接在exports上挂载变量,exports为module.exports上的引用(不能直接给exports赋值)

require('./路径')   不能直接写文件名开头,引入的是export的引用。

npm install express-generator -g命令安装

express -h选项可以列出所有可用的命令行选项

express -e直接生成服务端项目

上传自己的包

登陆npm官网,注册账号密码,执行下面命令。注意上传的包要有packgage.json文件。package.json中name为上传的包名,version为版本号,description为readme中介绍。

npm adduser

登陆用户。注意远程镜像仓库应该为http://registry.npmjs.org。如果不是需重新设置原创地址并重新登陆。

npm publish

上传自己的包。

cnpm

npm是node的包管理工具,会把项目里所有的依赖项保存在package.json文件中。
cnpm是淘宝在中国搭建的npm副本,保证中国用户使用依赖不受网路的影响,所以速度会比较快。

安装

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

缺点

cnpm不支持package-lock.json

1、使用cnpm install时候,并不会生成package-lock.json文件
2、cnpm install的时候,就算你项目中有package-lock.json文件,cnpm也不会识别,仍会根据package.json来安装。所以这就是为什么之前你用npm 安装产生了package-lock.json,后面的人用cnpm来安装,可能会跟你安装的依赖包不一致,这是因为cnpm 不受package-lock.json影响,只会根据package.json进行下载。

pnpm

一个包管理工具,和npm/yarn没有区别,主要优势在于

  • 包安装速度极快
  • 磁盘空间利用效率高

安装

npm i pnpm -g

相关概念 

硬链接(Hard Link)

硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接(Symbolic Link)

软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

存储方式

pnpm 内部使用基于内容寻址的文件系统来存储磁盘上所有的文件:

  • 不会重复安装同一个包。使用npm/yarn 的时候,如果100个包依赖lodash ,那么就可能安装了100次lodash ,磁盘中就有100个地方写入了这部分代码。但是pnpm会只在一个地方写入这部分代码,后面使用会直接使用hard link
  • 即使一个包的不同版本,pnpm 也会极大程度地复用之前版本的代码。举个例子,比如 lodash 有 100 个文件,更新版本之后多了一个文件,那么磁盘当中并不会重新写入 101 个文件,而是保留原来的 100 个文件的 hardlink,仅仅写入那一个新增的文件

官网与详细介绍

动机 | pnpm 中文文档 | pnpm 中文网

滑动验证页面

yarn

包管理和分发工具。下面仅列出部分和npm命令行有区别的命令。

中文官网

安装

安装 | Yarn 中文文档

命令行

CLI Introduction | Yarn

yarn add packageName@版本号

安装依赖包。

--dev(-D):开发环境依赖,用于写入package.json的开发环境文件。
--peer(-P):同等依赖,或者叫同伴依赖(当多个包同时依赖于1个包时,需要统一这个包的版本时使用)。
--optional(-O):可选依赖,如果有一些依赖包即使安装失败,安装替代的包来使项目仍然能够运行。就可以使用optionalDependencies。注意packageName中optionalDependencies会覆盖dependencies中的同名依赖包,所以不要在两个地方都写。

yarn|yarn install

安装所有依赖包。

yarn upgrade packageName@版本号

升级依赖包到指定版本。

yarn remove packageName

卸载指定依赖包。

yarn dlx mocha --version

需要yarn2的版本,相当于npx mocha --version。用于调用项目内部安装的模块等。

nvm、nrm、npx使用(安装、基本命令、参数、curl、wget)_YF-SOD的博客-CSDN博客

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值