npm VS npx
如果你一直在使用 Node.js,你很可能遇到过 npm
和 npx
。
虽然它们听起来相似,并且都是 Node.js 生态系统的重要成员,但它们有不同的用途。这篇帖子将解释 npm
和 npx
之间的不同之处,帮助你了解何时以及如何使用它们。
NPM,即 Node Package Manager ,是 Node.js 的默认包管理工具,它允许开发人员安装、分享和使用她们项目的包(如库或代码模块)。
这里有一些npm
常做的任务:
- 安装依赖项步骤:
在命令行中输入: npm install <package-name> (`安装包名前请确保你已初始化npm环境`)
切换到全屏,然后退出全屏
-
管理包版本: 指定特定版本的库以保持构建的一致性。
- 运行特定于项目的脚本: 在
package.json
文件中定义的脚本。
在终端中运行 `npm run` 命令后跟脚本名称,可以执行指定的脚本。
进入或退出全屏模式。
NPX是什么样的?npx
是一个在 NPM 5.2.0 版本(2017年7月)引入的工具。虽然 npm 主要负责管理依赖和包,npx 却是用来运行 Node.js 包的,特别是 CLI 工具等命令行工具,而无需将它们全局安装。
1. 包的安装与运行
- NPM: 当你使用
npm
安装一个包时,它要么全局安装,要么安装到你的项目文件夹里。这意味着在用之前,你得先装好它。
npm install -g create-react-app
create-react-app my-app
可以用这两行命令来全局安装 create-react-app
,然后创建一个新的 React 项目叫 my-app
。
进入全屏,退出全屏
- NPX : 使用
npx
,您可以运行命令行工具或可执行文件 而无需全局安装。 例如,您可以直接运行create-react-app
而无需全局安装。
npx create-react-app my-app
# 执行此命令可以创建一个名为my-app的新的React应用(创建React应用)
全屏模式 | 退出全屏
这节省了时间和磁盘空间的占用,你不需要安装那些可能只用一次的包。
zh: (此处省略)
2. 全局模块
使用 npm
时,全局模块会被安装并保留在您的系统中,有时可能会让您的环境变得有点乱。
通过npx,您可以通过运行一个包而无需担心它会一直占用您的系统空间。
使用 npm
安装全局包的示例:
使用npm全局安装typescript。
查看tsc版本。
切换到全屏模式,退出全屏
使用 npx
,您无需进行全局安装
运行以下命令来查看TypeScript编译器的版本:
npx tsc --version
全屏进入,全屏退出
zh: zh: …… (此处省略了部分内容)
3. 自动包管理
当你使用 npx
运行一个命令时,它会自动检查该包是否存在本地或全局,如果不存在,则会自动下载并临时运行它。这在执行一次性任务时特别有用。
比如说
npx cowsay "Hello, World!" // 输出“Hello, World!”的命令,通过cowsay工具显示。
进入全屏或退出全屏
如果尚未安装,这将会下载 cowsay 包,运行该包,然后清理干净。
4. 不使用脚本打包可执行文件
当使用 npm
运行 package.json
中定义的命令时,你可以这样写:
// 运行自定义脚本
npm run my-script
全屏模式/退出全屏
但有了 npx
,你就可以直接运行命令了。
输入以下命令来运行脚本: npx my-script
.
全屏观看 退出全屏
当脚本未在 package.json
中明确列出时,这特别管用。
使用 npm
来管理项目依赖项,包括安装、更新和移除。
- 运行特定于项目的脚本: 在 package.json
文件中定义并根据您的项目定制。
- 管理包版本: 固定特定版本的库以保持项目的一致性。
什么时候可以用 NPX(一种工具或技术)- 一次性执行的包: 使用 npx
来运行不想全局安装的包,例如只会用一次的 CLI 工具。
- 运行命令: 对于 create-react-app
这样的命令,你可以使用 npx
来运行这些命令而不需要全局安装。
- 测试不同版本: 快速运行特定版本而无需安装。
最后,npm
和 npx
都是 Node.js 生态系统中的重要工具,但它们有着不同的用途。用 npm
来管理项目的依赖,用 npx
来运行包而不进行永久安装。
这个小小的区别能让您的工作流程更顺畅,省时又避免了不必要的全局安装步骤。
共同學習,寫下你的評論
評論加載中...
作者其他優質文章