当前位置: 首页 > news >正文

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

目录

一  npm 和 yarn 的区别

二  npm 和 yarn 常用命令对比

1. 初始化项目

2. 安装所有依赖包

3. 安装某个依赖包

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

5. 更新依赖包

5. 移除依赖包

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

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


一  npm 和 yarn 的区别

1.  来源

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

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

2. 安装速度

        yarn: 速度较快:因为它会缓存已下载的包,并在安装时利用并行下载来最大化资源利用率。
        npm: 速度较慢:npm 需等待上一个任务安装完成才能运行下一个任务,尤其是在网络不稳定的情况下,可能会出现延迟和丢包的情况。

3.  版本控制
        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

        2. 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 会更加方便再次初始化依赖包。

http://www.lryc.cn/news/338952.html

相关文章:

  • Web端Excel的导入导出Demo
  • Java日期正则表达式(附Demo)
  • 基于LabVIEW的CAN通信系统开发案例
  • SAP SD学习笔记07 - 紧急发注(急单),现金贩卖,贩卖传票Type/ 明细Category 及其Customize
  • (六)C++自制植物大战僵尸游戏关卡数据讲解
  • Java基于微信小程序的校园外卖平台设计与实现,附源码
  • 渗透工具及其知识库(个人笔记)
  • MongoDB的使用
  • labview中FP.isFrontmost不生效?
  • Vela-OS: 记录一个class层,处理MSC协议的bug
  • 跨框架探索:React Redux 和 Vuex 对比分析快速掌握React Redux
  • 第十五届蓝桥杯省赛C/C++大学B组真题及赛后总结
  • 【Qt踩坑】ARM 编译Qt5.14.2源码-QtWebEngine
  • SQL语法 case when语句用法讲解
  • Project Euler_Problem 193_Few Repeated Digits_欧拉筛+容斥公式
  • 排序算法-基数排序
  • ChatGPT在线网页版
  • 5.SpringSpringBoot八股
  • 0基础刷图论最短路 3(从ATcoder 0分到1800分)
  • k8s+docker一键安装过程
  • Python3+Appium+Android SDK+真机+实现app自动化测试-基于Red Hat7.9版本搭建环境及运行python脚本。
  • 深入理解MD5算法:原理、应用与安全
  • 架构师系列-搜索引擎ElasticSearch(三)- Java API
  • Ubuntu下配置Android NDK环境
  • 使用 vue3-sfc-loader 加载远程Vue文件, 在运行时动态加载 .vue 文件。无需 Node.js 环境,无需 (webpack) 构建步骤
  • stm32移植嵌入式数据库FlashDB
  • Ubuntu 安装Java、Git、maven、Jenkins等持续集成环境
  • 文件批量重命名并批量修改文件扩展名,支持随机大小写字母命名并修改扩展名字母
  • 【管理咨询宝藏70】MBB大型城投集团内外部环境分析报告
  • 服务器挖矿病毒解决ponscan,定时任务解决