在前端开发中,npm 与 yarn 是两个必不可少的包管理工具。它们可以自动化安装、升级和删除你所需要的 JavaScript 库和工具包,使得前端项目的管理变得更为方便、快捷和高效。npm 与 yarn 有着广泛的应用,包括模块开发、web 应用开发、静态网站生成器等等。
本篇文章主要介绍 npm 包 npmvsyarn 使用教程,以便更好地掌握这两个工具的区别、优劣以及如何使用它们来简化你的开发流程。
npm 与 yarn 的对比
npm 和 yarn 都是 JavaScript 的包管理工具。npm 是 Node.js 上的默认包管理工具,而 yarn 是由 Facebook 开发的新一代包管理工具。下面我们来看一下他们的各自特点。
npm 的优点
- npm 的安装包数量和相关资源非常丰富;
- npm 的速度逐渐増加;
- npm 有易于编写的脚本,可以更好地控制包的安装和处理过程;
- npm 简单易用,开源社区广泛。
yarn 的优点
- yarn 的速度比 npm 更快,有着更快的安装速度和更好的性能表现;
- yarn 解决了 npm 的安全漏洞和文件冲突问题,可以获得更好的安全性;
- yarn 提供了 lock 文件机制,可以保证项目开发在不同电脑上的表现一致。
根据以上的优点,从速度、资源量和准确性等多方面的考量,我们来对比一下两者的区别:
安装速度
- yarn 的安装速度比 npm 快 50%
- yarn 安装时能够并行处理多个包
缓存和依赖管理
- yarn 使用缓存速度更快,而且具有本地缓存功能,避免了重复的数据下载
- yarn 的依赖管理更严格,每次安装的包版本默认情况下被锁定,因此包之间的兼容性很好,也不需要担心理解上的歧义。
结构差异
- npm 有 huge npm 软件仓库,通常在全部下载后应用开始运行,导致速度相对较慢
- yarn 使用的则是 Facebook 私有的 npm 软件仓库,通常是使用链接信息来做到运行时即时解析。
npm 升级到 yarn
npm 与 yarn 的使用并不冲突,所以你可以通过简单的升级方式让你的项目更好地使用 npm 和 yarn。通过以下步骤来将 npm 升级到 yarn:
- 第一步,首先需要全局安装 yarn:
npm install -g yarn
- 第二步,然后在你的项目文件夹中,清除已有的 npm 缓存:
npm cache clean --force
- 第三步,将所有的 npm 依赖包导出到 package.json:
npm ls --depth=0 | grep -v npm | awk -F/ '{printf "%s@%s\n", $2, $4}' > dependencies.txt
- 第四步,使用 yarn 安装依赖:
yarn install --prod
这样你就成功将 npm 转换为了 yarn。
npmvsyarn 使用教程
创建项目
首先来创建一个新的项目。
使用 npm:
npm init -y
使用 yarn:
yarn init -y
这些命令将创建一个最小的 package.json 文件,其中包括项目名称、版本、描述等等。
安装依赖
接下来,让我们来安装一些依赖包。
使用 npm:
npm install express
使用 yarn:
yarn add express
这些命令都将安装 express 包,但是运行 npm ls
和 yarn list
命令可以看到,npm 将包安装在 node_modules
目录下,而 yarn 安装在了 node_modules/.yarn
目录下。
卸载依赖
如果你想卸载某个依赖包,可以使用以下命令:
使用 npm:
npm uninstall express
使用 yarn:
yarn remove express
更新依赖
如果你想更新某个依赖包到最新版本,可以使用以下命令:
使用 npm:
npm update express
使用 yarn:
yarn upgrade express
安装本地和全局包
有时候,你需要安装本地和全局包。
使用 npm:
npm install express gulp -g
使用 yarn:
yarn global add express gulp
安装指定版本的包
如果你想要安装特定版本的依赖包,可以使用以下命令:
使用 npm:
npm install express@4.15.4
使用 yarn:
yarn add express@4.15.4
通过 lock 文件控制版本
Npm 和 yarn 都可以将项目的依赖关系保存在 lock 文件(package-lock.json 或 yarn.lock) 中,这将确保项目中的所有开发人员使用的是相同的依赖项版本。
如果你使用 npm,可以使用以下命令:
npm install --save-dev lockfile-lint npx lockfile-lint
如果你使用 yarn,可以使用以下命令:
yarn add --dev @yarnpkg/lockfile lint npx yarn-deduplicate
镜像加速
如果你使用npm命令,你可以修改npm的registry地址来进行加速。因为npm原始的registry是国外,因此在没有科学上网的情况下,下载速度会非常慢。修改registry的方法很简单,可以输入一下指令:
npm config set registry http://registry.npm.taobao.org/ // 或者 npm config set registry https://registry.npm.taobao.org/
如果你使用yarn命令,你可以修改yarn的registry地址来进行加速。因为yarn原始的registry是国外,因此在没有科学上网的情况下,下载速度会非常慢。修改registry的方法很简单,可以输入以下指令:
yarn config set registry http://registry.npm.taobao.org/ // 或者 yarn config set registry https://registry.npm.taobao.org/
结论
本文主要介绍了 npm 和 yarn 的优缺点,以及如何使用和迁移依赖包,同时给出了示例和使用教程。希望能够帮助读者快速了解 npm 和 yarn 的具体使用方法,进一步提升前端开发工作的效率和质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066f933d1de16d83a66bcd