【node】关于npm、yarn、npx的区别与使用

npm (Node Package Manager):

  • 用途: npm 是 Node.js 官方提供的包管理工具,用于安装、管理和分享 JavaScript 代码包。
  • 安装依赖: 可以通过 npm install 安装项目依赖,例如:npm install package-name
  • 运行脚本: 可以在 package.json 文件中定义脚本,通过 npm run script-name 执行脚本。
  • 版本管理: 提供版本管理,可以指定安装的包的版本。
  • 全局安装: 通过 -g 参数可以进行全局安装,使包成为全局可执行命令。
  • 安装依赖

    npm install package-name
    

    运行脚本

    npm run start
    

    npx:

  • 用途: npx 是随同 npm 5.2.0+ 版本发布的工具,用于执行项目依赖中的可执行文件,无需显式安装到全局或本地。
  • 临时安装: npx 会在执行命令时,临时安装依赖包,而不需要将其添加到项目的依赖中。
  • 版本检查: 如果本地项目中存在相应版本的依赖,npx 将使用项目中的版本执行,否则会下载并执行最新版本。
  • 执行项目依赖中的命令

    npx package-name
    

    yarn:

  • 用途: yarn 是一个 JavaScript 包管理工具,用于替代 npm 进行包的管理。
  • 性能优化: 具有更快的安装速度、离线安装、并行下载等性能优化。
  • 版本锁定: 通过 yarn.lock 文件可以锁定依赖包的版本,确保团队成员使用相同的版本。
  • 自动清理: 自动清理不再使用的依赖。
  • 安装依赖

    yarn add package-name
    

    选择使用:
    npm vs. yarn: npm 和 yarn 都是常见的包管理工具,选择取决于个人或团队的偏好。在大多数情况下,两者的功能基本相似,可以根据具体需求进行选择。

    npx 的使用场景: npx 通常用于执行项目依赖中的可执行文件,适用于需要一次性执行某个命令而无需全局安装的情况。

    总体来说,这些工具在 JavaScript 生态系统中起到了关键作用,提供了便捷的包管理和执行脚本的方式。

    eg.使用npx yarn install 的作用

    npx yarn install 的作用是使用 npx 命令来运行 yarn install,实际上它等同于直接运行 yarn install。让我们分解一下这个命令:

    npx: 用于执行可执行文件,通常是在项目依赖中找到的可执行文件。如果没有全局安装 yarn,npx 会查找项目依赖中的 yarn 并执行。

    yarn install: 是 yarn 命令的一部分,用于安装项目的依赖。

    因此,npx yarn install 的效果与直接运行 yarn install 是一样的。通常情况下,你可以直接使用 yarn install 来安装项目依赖,而不需要额外使用 npx。

    如果项目中已经存在 yarn 的二进制可执行文件,你也可以直接运行:

    yarn install
    

    或者如果你希望确保使用项目中的 yarn,可以使用 npx:

    npx yarn install
    

    这对于确保使用项目中的本地 yarn 版本而不是全局版本可能是有用的。

相关推荐

  1. node关于npm、yarn、npx区别使用

    2024-01-25 13:48:01       43 阅读
  2. extern和static使用区别

    2024-01-25 13:48:01       22 阅读
  3. definetypedef区别使用

    2024-01-25 13:48:01       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-25 13:48:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-25 13:48:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-25 13:48:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-25 13:48:01       20 阅读

热门阅读

  1. c#模板设计模式

    2024-01-25 13:48:01       32 阅读
  2. 蓝桥杯题目-回文日期

    2024-01-25 13:48:01       42 阅读
  3. #Uniapp: uni.makePhoneCall(OBJECT) 拨打电话

    2024-01-25 13:48:01       33 阅读
  4. 5-分页实现

    2024-01-25 13:48:01       40 阅读
  5. vue2面试题:vue组件之间的通信方式有哪些?

    2024-01-25 13:48:01       31 阅读
  6. C++套接字编程

    2024-01-25 13:48:01       37 阅读