npm 和yarn的常用指令

初始化一个新的项目

yarn init --yes # 简写 -y 

npm init --yes # 简写 -y

添加依赖

yarn add <package...> [--dev/-D] //不带-D默认生产环境 

yarn add [package]@[version] #带版本 

npm install XXX --save 可以简写成npm i XXX -S --------> 安装项目依赖

npm install XXX --save-dev可以简写成npm i XXX -D ------> 安装开发依赖

安装全局依赖

yarn global add [package]

npm install [package] -g 

移除依赖

yarn remove <packageName> 

npm uninstall <packageName> -S

全局移除依赖

yarn global remove <packageName>

npm uninstall -g <packageName> 

升级依赖

yarn upgrade # 升级所有依赖项,不记录在 package.json 中 

npm update # npm 可以通过 ‘--save|--save-dev’ 指定升级哪类依赖 

yarn upgrade webpack # 升级指定包 

npm update webpack --save-dev #

npm yarn upgrade --latest # 忽略版本规则,升级到最新版本,并且更新 package.json

运行脚本

yarn run 

npm run

列出全局所有依赖

yarn global list --depth=0 # 限制依赖的深度

npm list -g --depth=0

清除缓存

yarn cache clean

npm cache clean --force

npm和yarn转换淘宝源和官方源

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

yarn config set registry http://registry.npm.taobao.org/
yarn config set registry https://registry.npmjs.org/

npm 设置代理
 

npm config set proxy http://127.0.0.1:8080
npm config set https-proxy http://127.0.0.1:8080

yarn config set proxy http://127.0.0.1:8080
yarn config set https-proxy http://127.0.0.1:8080

npm 删除代理

npm config delete proxy
npm config delete https-proxy

yarn config delete proxy
yarn config delete https-proxy

设置离线镜像存储:

yarn config set yarn-offline-mirror [MIRROR_DIRECTORY_PATH]
yarn config set yarn-offline-mirror-pruning true

第一个配置是离线镜像缓存文件夹的位置,用于存放下载的TAR包。第二个配置是帮助清理所有未链接的依赖项(可以不设置)。

这个设置将创建~/.yarnrc,如果不是全局设置,而是仅当前项目要设置,则需要移动该文件到当前项目目录中:

测试脱机状态的方法如下(需要关闭有线或无线网络连接):

yarn cache clean
yarn install -offline
<think>我们被要求解释npmyarn的区别,并且需要按照指定的格式提供回答,包括代码示例(如果适用)相关问题。由于npmyarn是包管理工具,它们之间的区别主要体现在命令、性能、安全性工作流程上。我们不会编写具体的功能代码,但可以展示一些基本命令的对比。注意:虽然问题没有要求特定编程语言,但鉴于上下文是前端项目,我们可以提供一些配置文件(如package.json)相关的说明,但不需要具体代码。因此,我们将重点放在文字解释命令对比上。如果需要代码块,我们可以展示一些命令示例。回答结构:1.简要介绍npmyarn2.主要区别(包括但不限于):-历史背景-安装速度与性能-安全性一致性-命令对比-lock文件的作用-其他特性(如工作区、离线模式等)3.给出一些基本命令的示例(使用代码块)4.在最后提出相关问题注意:由于yarn有v1(经典版)v2+(Berry)的区别,我们主要对比npmyarn经典版(v1),因为当前大多数项目仍在使用yarnv1。</think> ### npmyarn 的区别 npm (Node Package Manager) yarn 都是 JavaScript 的包管理工具,用于管理项目依赖。以下是它们的主要区别: #### 1. **开发背景与历史** - **npm**:Node.js 官方自带的包管理工具(2010年发布) - **yarn**:Facebook 开发(2016年发布),旨在解决当时 npm 的痛点 #### 2. **安装依赖机制** ```bash # npm 安装依赖 npm install # yarn 安装依赖 yarn install ``` npm 按顺序依次安装包,而 yarn 使用并行安装: ```javascript // npm 安装流程(串行) package1 → package2 → package3 // yarn 安装流程(并行) package1 ↗ package2 → 完成 package3 ↘ ``` #### 3. **版本锁定文件** ```javascript // npm 使用 package-lock.json { "name": "project", "version": "1.0.0", "lockfileVersion": 3, "requires": true, // 依赖树确切版本 } // yarn 使用 yarn.lock # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 package@^1.0.0: version "1.2.3" resolved "https://registry.yarnpkg.com/package/-/package-1.2.3.tgz" integrity sha512-... ``` #### 4. **性能对比** | 场景 | npm | yarn | |-------------|-------------|-------------| | 首次安装 | ⚠️ 较慢 | ⚡️ 快40-50% | | 重复安装 | 🟡 中等 | ⚡️ 更快 | | 网络稳定性 | 🟡 中等 | ✅ 重试机制 | | 离线安装 | ⚠️ 基本不支持| ✅ 完善支持 | #### 5. **常用命令对比** | 功能 | npm | yarn | |------------------|-----------------------|-------------------| | 初始化项目 | `npm init` | `yarn init` | | 安装包 | `npm install <pkg>` | `yarn add <pkg>` | | 开发依赖 | `npm install -D <pkg>`| `yarn add -D <pkg>`| | 全局安装 | `npm install -g <pkg>`| `yarn global add` | | 运行脚本 | `npm run <script>` | `yarn <script>` | | 更新依赖 | `npm update` | `yarn upgrade` | | 清除缓存 | `npm cache clean` | `yarn cache clean`| #### 6. **安全机制** ```bash # npm 安装时自动执行 package.json 中的脚本 # 可能包含安全风险(需手动审计) npm audit # yarn 默认不执行安装脚本(更安全) yarn install --ignore-scripts yarn audit ``` #### 7. **工作区支持** ```json // yarn 工作区示例 (package.json) { "private": true, "workspaces": ["packages/*"] } // npm v7+ 也支持工作区 { "workspaces": ["packages/*"] } ``` #### 8. **现代实践建议** 对于新项目: - 公共库开发 → 推荐 **npm**(更贴近 Node.js 官方生态) - 大型应用 → 推荐 **yarn**(性能稳定性更好) - Monorepo 项目 → yarn workspaces 或 npm workspaces
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值