npm、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
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
上传自己的包。
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博客
npm、pnpm和yarn使用(官网、安装、命令行、上传自己的包、包版本号详解、更新卸载包、查看所有版本、同等依赖peer、可选依赖optional)相关推荐
- linux下备份mysql上传到网盘_Linux命令行上传文件到百度网盘
最近在学习 MySQL 的 bin-log 时候考虑到数据备份的问题,突然想到如果能将数据通过 Linux 命令行方式备份到百度网盘,那是一件多么牛逼的事情.百度网盘有免费的 2TB 存储空间,而且有 ...
- Linux命令行上传文件到百度网盘
最近在学习 MySQL 的 bin-log 时候考虑到数据备份的问题,突然想到如果能将数据通过 Linux 命令行方式备份到百度网盘,那是一件多么牛逼的事情.百度网盘有免费的 2TB 存储空间,而且有 ...
- linux给百度网盘传文件夹,[转]Linux命令行上传文件到百度网盘
安装软件工具:python apt-get install python-pip pipinstallrequests pipinstall bypy 受权登录:api 执行 bypy info,显示 ...
- linux同步到云盘,Linux命令行上传文件到百度网盘
百度云/百度网盘Python客户端github项目 系统环境: linux与ma + python3.6 安装依赖包 pip install requests pip install bypy==1. ...
- windows安装pscp工具,通过命令行上传到linux服务器
三步完成: 下载pscp工具 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 拷贝到 C:\Windows\System ...
- Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 14.04.4 LTS ...
- ROS2官网安装教程补充
ROS2官网安装教程补充 1. 问题 1.1. 源慢 1.2. source 1.3. colcon 2. 解决办法 2.1. 源慢 2.2. source 2.3. colcon 1. 问题 按照 ...
- Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
不多说,直接上干货! 说在前面的话 首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu 16.04.1 LTS ...
- 无需破解,官网安装Visual Studio 2013社区版
无需破解,官网安装Visual Studio 2013 下载安装用.iso光盘映像 访问较旧版本下载页面 如图所示,找到Visual Studio 2013,点击下载,跳转到下载页面. 跳转到下载页面 ...
最新文章
- Python+OpenCV 图像处理系列(1)— Ubuntu OpenCV安装、图片加载、显示和保存
- 飞机上一般是什么操作系统?
- 普渡大学计算机专业,普渡大学计算机介绍
- STM32实现IAP功能之一
- driver.class.php line: 109,thinkphp3.2.3 无法加载数据库驱动: Think\Db\Driver\
- C/C++ 一段代码区分数组指针|指针数组|函数指针|函数指针数组
- Python3——多线程之threading模块
- realm android,Realm for Android快速入门教程
- sql机器学习服务_机器学习服务–在SQL Server中配置R服务
- project facets中没有dynamic_C++强制类型转换操作符 dynamic_cast
- 地老天荒只是一个华丽的传说
- QSS按钮样式设置的坑,按下(pressed)时按钮颜色不变化
- AD库转allegro步骤
- 苹果手机怎么修改dns服务器,苹果手机怎么设置DNS iPhone8更改DNS详细图文教程
- PW4052锂电池充电管理芯片2.5A 单节(多并)锂 电池充电管理
- 网络中心化 和 去中心化
- 『天涯杂谈』衣食住行小窍门
- 如何应对美国对开源项目的出口管制?这是Linux基金会的建议
- 建筑有言丨如果大学有一个最好的专业,那就是建筑学
- FFmpeg 录制桌面、麦克风、摄像头
热门文章
- java 时间提醒功能_提醒软件【送给她】——如果工作时间长了,提醒一下,该休息一下了,休息时长可设置,单位是秒...
- 每日学术速递5.20
- Mac外接2k屏幕如何开启Hidpi解决字体模糊等问题
- 转载--PLC、PAC、PC-Based、软PLC
- 股票投资量化是什么?
- 做软件,中国人不比别人差 专访微软中国研究院院长:张亚勤 (转)
- 计算机医学英语论文,医学英语科普文章,English popular science writing in medicine,音标,读音,翻译,英文例句,英语词典...
- 详解EBS接口开发之WIP模块接口
- 权限控制(delphi actionlist)
- 2015最新iOS QQ登录(64位)