包管理工具npm与pnpm

什么是NPM?

npm是一个JavaScript包管理工具,能够允许开发者轻松地下载、安装、共享、管理项目的依赖库和工具,是node.js自带的包管理工具,因此,你需要先安装Node.js

安装node.js

直接到官网进行下载即可,下载完成后,在终端运行

shell 复制代码
node -v

NPM的主要功能

包管理

安装各种第三方库,像vue、axios、React等等。

node.js 复制代码
npm install vue

因为npm官方本身是外网的,国内下载非常慢,需要修改下载镜像------一般使用淘宝的镜像

node.js 复制代码
npm install -g cnpm --registry=https://registry.npmmirror.com

package.json的说明与使用

主要作用:用于描述项目的元数据和依赖关系,一般位于项目的根目录,是项目的配置文件

json 复制代码
{
 "name"://项目名称
 "version"://项目的版本号
 "description"://项目的简要描述
 "main"://项目的入口文件
 "script":{//可执行脚本命令
 }
 "dependencies":{//项目需要依赖库
 }
 "devDependencies":{//开发环境的依赖库,不会在生产环境中安装
 }
 "keywords"://关键字,有助于项目在NPM搜索中找到项目
 "author"://作者信息
 "license"://项目的许可证类型
}

版本管理

可以根据项目情况安装低版本的依赖,也可以进行版本的锁定,或者更新最新的版本。

版本号遵循语义化版本控制(SemVer)

1. 版本格式

  • 结构MAJOR.MINOR.PATCH(主版本号.次版本号.修订号)

    • MAJOR:不兼容的API变更时递增。

    • MINOR:向下兼容的功能新增时递增。

    • PATCH:向下兼容的问题修复时递增。

2. 核心规则

  • 0.y.z(初始阶段):视为不稳定版本,MINOR的变化可能包含破坏性变更。

  • 版本不可修改:发布后内容不可更改,需通过新版本号修复问题。

  • 公共API定义:版本变更基于用户可见的API变动,需明确界定接口范围。

3. 预发布与构建元数据

  • 预发布版本 :追加连字符标识(如1.0.0-alpha.1),优先级低于正式版。

  • 构建元数据 :加号后添加信息(如1.0.0+build.123),不影响版本优先级。

4. 版本比较规则

  • 优先级顺序:1.0.0 < 1.0.1 < 1.1.0 < 2.0.0

  • 预发布版本低于正式版(如1.0.0-beta < 1.0.0)。

5. 应用场景示例

  • PATCH升级 :修复Bug(如1.0.0 → 1.0.1)。

  • MINOR升级 :新增兼容功能(如1.0.1 → 1.1.0)。

  • MAJOR升级 :破坏性变更(如1.1.0 → 2.0.0)。

包发布

开发者可以自己制作npm库后发布到npm仓库中,供其他开发者下载使用。

命令行工具

npm常用命令

node.js 复制代码
npm init -y //初始化一个新的带有默认设置的package.json文件

npm install package-name //本地安装指定包

npm update package-name //更新指定的依赖包

npm uninstall package-name //卸载指定的依赖包

npm list //查看当前项目以安装的依赖包列表

npm login //登录到npm账号

npm publish //发布当前包到npm注册表中

npm run start //运行start脚本,其他脚本类推

PNPM

项目初衷------节省磁盘空间

使用 npm 时,依赖每次被不同的项目使用,都会重复安装一次。 而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中,如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。所有文件都会存储在硬盘上的某一位置。

安装

在Windows上

使用 PowerShell:

PowerShell 复制代码
Invoke-WebRequest https://get.pnpm.io/install.ps1 -UseBasicParsing | Invoke-Expression

使用 npm:

node.js 复制代码
npm install -g pnpm@latest-10

使用 HomeBrew:

node.js 复制代码
brew install pnpm

命令

node.js 复制代码
pnpm add sax//安装软件包及其依赖的任何软件包。

pnpm i || install// 用于安装项目的所有依赖项。

pnpm up || update//更新所有依赖项。

pnpm rm || remove//删除软件包。

pnpm rebuild || rb//重新构建软件包。

pnpm audit --fix//检查已安装程序包的已知安全问题。

pnpm list || ls//此命令将以树结构的形式输出已安装的所有软件包的版本以及及其依赖项。

pnpm run "script"//运行在软件包清单文件中定义的脚本,可以把run省略。

pnpm create *//从 `create-*` 或 `@foo/create-*` 启动套件创建一个项目。
相关推荐
智者知已应修善业2 分钟前
【51单片机2位数码管100毫秒的9.9秒表】2022-5-16
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
知青春之宝贵10 分钟前
BEV感知-课程学习详细记录(自动驾驶之心课程)
学习
代码搬运媛16 分钟前
【Node.js 的底层实现机制】从事件驱动到异步 I/O
node.js
饕餮争锋22 分钟前
设计模式笔记_创建型_单例模式
java·笔记·设计模式
teeeeeeemo32 分钟前
Number.toFixed() 与 Math.round() 深度对比解析
开发语言·前端·javascript·笔记
阿珊和她的猫1 小时前
`toRaw` 与 `markRaw`:Vue3 响应式系统的细粒度控制
前端·javascript·vue.js·typescript
网络点点滴1 小时前
探索 Vue 替代方案
前端·javascript·vue.js
江城开朗的豌豆1 小时前
Vue的keep-alive缓存揭秘:多出来的生命周期怎么玩?
前端·javascript·vue.js
BoredWait1 小时前
vite+vue-ts 如何在项目中实现多语言
前端·javascript
蚊子不吸吸2 小时前
在Docker、KVM、K8S常见主要命令以及在Centos7.9中部署的关键步骤学习备存
linux·学习·docker·kubernetes·centos·k8s·kvm