Nodejs中npx简介和作用

npx是npm5.25.2版引入的命令,用于方便地运行项目内的模块,避免全局安装。它可以自动查找node_modules/.bin目录和环境变量$PATH中的命令,支持指定版本执行,如npxwebpack@4.44.1。npx还可在运行时下载并使用一次性模块,如创建React应用的create-react-app,之后会删除,简化了版本管理和依赖安装过程。
摘要由CSDN通过智能技术生成

一、npx简介

npm从5.25.2版开始,增加了 npx 命令。方便了我在项目中使用全局包。

二、安装

Node安装后自带npm模块,可以直接使用npx命令。如果不能使用用,就要手动安装一下。

npm install -g npx

三、使用

npx想要解决的主要问题,就是调用项目内部安装的模块。比如,项目内部安装了测试工具webpack。

npm install webpack -D

如果我们使用webpack,只能在项目脚本的 package.json 中的scripts字段里面, 如果想在命令行下调用,必须像下面这样。

node-modules/.bin/webpack -v

npx 可以让项目内部安装的模块用起来更方便,只要像下面这样调用就行了。

npx webpack -v

npx 的原理很简单,就是运行的时候,会到node_modules/.bin路径和环境变量$PATH里面,检查命令是否存在。

由于 npx 会检查环境变量$PATH,所以系统命令也可以调用。

npx ls // 等同于ls命令

另外,使用npx可以避免全局安装模块,比如,create-react-app这个模块是全局安装,npx 可以运行它,而且不进行全局安装。

npx create-react-app my-react-app

上面代码运行时,npx 将create-react-app下载到一个临时目录,使用以后再删除。所以,以后再次执行上面的命令,会重新下载create-react-app。

下载全局模块时,npx 允许指定版本。

npx webpack@4.44.1 ./src/index.js -o ./dist/main.js

上面代码指定使用 4.44.1 版本的webpack进行打包操作。

注意,只要 npx 后面的模块无法在本地发现,就会下载同名模块。比如,本地没有安装webpack-dev-server模块,下面的命令会自动下载该模块,在当前目录启动一个 Webpack dev 服务。

npx webpack-dev-server

如果想让 npx 强制使用本地模块,不下载远程模块,可以使用--no-install参数。如果本地不存在该模块,就会报错。

npx --no-install webpack-dev-server

反过来,如果忽略本地的同名模块,强制安装使用远程模块,可以使用--ignore-existing参数。比如,本地已经全局安装了create-react-app,但还是想使用远程模块,就用这个参数。

npx --ignore-existing create-react-app my-react-app

利用 npx 指定某个版本的 Node 运行脚本。

npx node@14.10.0 -v

上面命令会使用 14.10.0 版本的 Node 执行脚本。原理是从 npm 下载这个版本的 node,使用后再删掉。

某些场景下,这个方法用来切换 Node 版本,要比 nvm 那样的版本管理器方便一些。

Node.js是一个基于Chrome V8引擎的JavaScript运行环境,用于服务器端开发。如果你需要在不同版本之间切换Node.js,可以按照以下步骤操作: 1. **查看当前版本**: 在命令行输入 `node -v` 或者 `npm -v`,会显示当前安装的Node.js和npm(包管理器)的版本。 2. **下载新版本**: 访问Node.js官方网站 <https://nodejs.org/> 下载页面,根据需求选择适合的新版本。通常可以选择长期支持版(LTS)或最新稳定版。 3. **手动安装**: 使用下载的安装程序进行安装,安装路径自定义或默认即可。如果想覆盖现有版本,记得指定安装目录,如 `sudo npm install -g node@version`(替换`version`为你要安装的具体版本号)。 4. **设置环境变量**: 安装完成后,你需要更新系统的PATH环境变量,使得系统能够识别新的Node.js可执行文件。这通常会在`/usr/local/bin`或者你指定的安装路径下。 5. **验证新版本**: 新的Node.js版本应该已经可以在命令行通过 `node -v` 命令检查到。 6. **移除旧版本**: 如果你想移除旧版本,可以使用 `npm uninstall -g node`,但请注意,这可能会导致依赖于旧版本的应用无法正常工作,除非它们也支持新版本。 7. **隔离版本**: 如果你需要同时使用多个版本,可以考虑使用nvm (Node Version Manager) 或 npx/npx-cli等工具来帮助管理多个Node.js版本,避免版本冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跟着猫哥学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值