关于npm和yarn的使用(自己的问题记录)

目录

[一 npm 和 yarn 的区别](#一 npm 和 yarn 的区别)

[二 npm 和 yarn 常用命令对比](#二 npm 和 yarn 常用命令对比)

[1. 初始化项目](#1. 初始化项目)

[2. 安装所有依赖包](#2. 安装所有依赖包)

[3. 安装某个依赖包](#3. 安装某个依赖包)

4.安装某个版本的依赖包

[5. 更新依赖包](#5. 更新依赖包)

[5. 移除依赖包](#5. 移除依赖包)

[三 package.json中 devDependencies 和 dependencies 的区别。](#三 package.json中 devDependencies 和 dependencies 的区别。)

[四 npm安装包时,加 --save和不加的区别](#四 npm安装包时,加 --save和不加的区别)


一 npm 和 yarn 的区别

  1. 来源

npm 是node.js自带包管理工具,将node.js安装后,就可以直接使用npm包管理工具。

yarn 需要通过npm进行安装后才能使用。安装命令:npm install -g yarn (全局安装后所有项目都可以使用)

  1. 安装速度

yarn: 速度较快:因为它会缓存已下载的包,并在安装时利用并行下载来最大化资源利用率。

npm: 速度较慢:npm 需等待上一个任务安装完成才能运行下一个任务,尤其是在网络不稳定的情况下,可能会出现延迟和丢包的情况。

  1. 版本控制

yarn: 使用 yarn.lock 文件记录安装的包版本号,确保在不同系统上安装的依赖版本一致。

npm: 使用 package-lock.json 文件来记录确切安装的模块版本号,但需要手动执行 npm shrinkwrap 命令来生成锁定文件。

二 npm 和 yarn 常用命令对比

以 axios 为例。

1. 初始化项目

yarn init

npm init

2. 安装所有依赖包

yarn 或 yarn install

npm install

3. 安装某个依赖包

yarn add axios

npm install axios

4.安装某个版本的依赖包

yarn add axios@1.6.7

npm install axios@1.6.7

5. 更新依赖包

yarn upgrade axios

npm update axios

5. 移除依赖包

yarn remove axios

npm uninstall axios

三 package.json中 devDependencies 和 dependencies 的区别。

  1. dependencies: 生产环境依赖包。使用 npm install 命令安装模块时,dependencies 中的包会被安装到项目中。这些包在程序运行时必须的,没有的话慧报错,导致程序运行出错。

安装命令:npm install echarts -save

  1. devDependencies: 开发环境依赖包。只用在开发过程中,在程序正式部署时不需要。比如:webpack、glup 等。

安装命令:npm install echarts --save-dev

四 npm安装包时,加 --save和不加的区别

  1. npm install xxx --save : 命令是安装模块到项目node_modules目录下,并将模块依赖写入package.json文件中的dependencies下。如果node_modules目录被删除了(或者程序拉下来后需要初始化),使用npm install 可以自动安装所有的依赖。

  2. npm install xxx :命令是安装模块到项目node_modules目录下,但是不会将安装的依赖包写到package.json文件中。如果将node_modules目录删除,使用npm install安装所有依赖,自行安装的依赖不会被安装,如果使用,需要再次手动安装(npm install xxx)。

  3. 总结:加了--save 会更加方便再次初始化依赖包。

相关推荐
臣妾没空17 小时前
里程碑5:完成框架npm包抽象封装并发布
前端·npm
sudo_jin1 天前
前端包管理器演进史:为什么 npm 之后,Yarn 和 pnpm 成了新宠?
前端·npm
codingWhat3 天前
前端组件库开发实践:从零到发布
前端·npm·vite
vivo互联网技术5 天前
深度解析悟空系统多机房部署共线改造
前端·npm·多语言·共线改造·多机房
汐瀼5 天前
【AI个人学习】npm本地安装claude code白嫖minimax模型
前端·学习·npm
硬汉嵌入式6 天前
MDK6的pack包管理组件Arm Device Manager转战npm做系统管理,解决下载卡顿,慢的问题
npm·mdk6
日光倾6 天前
【Vue.js 入门笔记】NPM入门
vue.js·笔记·npm
受打击无法动弹9 天前
Window 10部署openclaw报错node.exe : npm error code 128
npm·node.js·openclaw
天開神秀14 天前
解决 n8n 在 Windows 上安装社区节点时 `spawn npm ENOENT/EINVAL` 错误
前端·windows·npm