了解这些工具之间的区别
自从 npx 被包含在 npminstallation 中已经有一段时间了,确切地说是从 5.2 版开始,但是尽管这个工具很有用,但似乎有点被忽视了。
如果您查阅过 React.js 文档,您会发现要使用 create-react-app 命令创建一个新应用程序,他们会在 npx 之前使用它而不是 npm,因为它通常使用任何 npm 包完成。
你有没有想过为什么?
如果您仍然不太清楚,在本文中,我们将解释这些工具之间的区别,并学习如何充分利用两者
NPM(节点包管理器)
它是我们安装 Node.js 时默认获得的依赖项/包管理器。它为开发人员提供了一种在全局和本地安装包的方法。
NPM 本身不运行任何包。如果我们想使用 npm 运行一个包,我们必须在 packages.json 文件中指定该包。
安装可执行文件时,通过 npm 包,npm 链接到它们:
我们可以通过这种方式在给定项目中本地安装包:
$ npm install some-package
现在假设我们希望 NodeJS 从命令行运行该包:
$ some-package
以上将无法按预期工作。 只有全局安装的包可以通过只输入它们的名字来执行。
要解决这个问题并运行它,我们必须编写本地路径:
$ ./node_modules/.bin/some-package
从技术上讲,我们可以通过编辑 packages.json 文件并在脚本部分添加该包来运行本地安装的包:
{
"name": "whatever",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
然后我们使用 npm run-script 或 npm run 运行脚本:
$ npm run some-package
NPX(节点包执行器)
NPX 是一个 npm 二进制包执行器,也就是说,它运行在 CLI 中。
npx 将检查 $PATH 或本地项目二进制文件中是否存在
$ npx some-package
npx 的另一个最大优势是能够运行以前未安装的包:
$ npx create-react-app my-app
上面的示例将生成一个带有执行命令的路径的 react app 样板文件,并确保您始终使用最新版本的生成器或编译器工具,而无需在每次使用时都对其进行更新。
使用 npx,我们无需安装全局包即可运行它们
以全局模式安装 jest、mocha、jasmine、grunt 或 gulpare 等工具,以便能够从终端运行它们而不会带来更多复杂性。
但是,对于需要全局 npm 包的主要版本的新项目,当我们从一个项目更改为另一个项目时,我们将需要使用和安装不同的版本。
这个问题解决了,因为从现在开始,不再安装全局包(小心,总是有例外)。现在,使用 npx,您可以安装 jestas 本地开发依赖项,当您在终端运行 npx jestin 时,它会工作。
那是因为 npx 负责在你的 c 文件夹中查找 jest 可执行文件。
使用 npx,您无需创建 npm 脚本即可运行本地二进制文件。
实现与上一点类似的行为,即将包安装为本地开发依赖项而不是全局依赖项。
到目前为止,如果我们想要执行包,我们必须将它包含在 package.json 的脚本部分中,以执行指令或在终端中放入 node_modules 中的包路径。
现在有了 npx,我们需要做的就是
$ npx some-package
使用 npx,我们可以运行具有不同 Node.js 版本的命令。
这意味着我们可以使用不同的节点版本轻松测试节点命令,而无需使用像 nvmor nave 这样的版本管理器。
当然,我们也可以指明我们要运行哪个版本。
$ npx eslint@v3.18.0 yourfile.js
因此我们不必在本地安装 create-react-app 包来生成项目。 使用 npx,我们可以运行 $ npx ceate-react-app,它会下载最新版本的包,使用它,最后将它从我们的系统中删除。
这也非常适合测试工具是否可以快速为我们服务。
结论
NPM — 管理包,但要轻松运行它们并不总是那么容易。
NPX — 无需安装二进制文件即可轻松运行节点包的工具。
NPX 为我们提供了一种清晰而简单的方法来运行包,并帮助我们避免版本控制、依赖问题以及安装我们只想测试的不必要的包。
当然,npx 是一个非常有用的工具,可以在我们的下一个项目中开始使用(如果你还没有使用它的话)。
关注七爪网,获取更多APP/小程序/网站源码资源!
留言与评论(共有 0 条评论) “” |