关于npx的用法,我也是先读了阮一峰的博文,写得比较清楚了。

npx需要node@5.2及以上版本支持,如果不支持可以用npm安装。

本文就简洁地讲一下重点:

什么是npx?

npx是一个用来执行其他命令的命令

// 查看node版本
node -v

// npx命令查看node版本,与上面命令等效(假设只有全局node模块被安装)
npx node -v

npx 有什么作用?

npx在执行命令时,既可以检查当前项目中已安装的命令,也可以检查全局命令。比如:

// 在当前项目路径下安装了create-react-app,但没有全局安装,此时初始化一个react项目
./node_modules/.bin/create-react-app myapp

// 因为没有全局安装,所以直接执行 create-react-app 会报错,只能引用本地命令的路径

// 使用npx,就可以直接访问当前项目下的命令
npx create-react-app myapp

以上npx运行的时候,会到node_modules/.bin路径和环境变量$PATH里面检查命令是否存在。 由于 npx 会检查环境变量$PATH,所以系统命令也可以调用。当然如果环境变量里也没有这个命令,npx会在当前工程路径下载这个命令(临时),执行完后会删除这个命令。所以npx每次都有可能调用最新的命令。

npx的用法根据参数配置来实现,具体看文档。看不懂源文档可以看阮一峰的。其中 -p -c –no-install –ignore-existing 浅显易懂。

使用体会

解决了在当前工程目录的命令执行问题,通常命令会写在package.json的scripts里,现在可以简化了。

需要思考的是,什么时候使用项目模块或全局模块。

比如在react项目中,强烈建议用npx执行create-react-app命令。曾经我遇到的node版本导致的项目跨团队开发startup问题,以及某些包依赖的版本问题,用npx完全可以解决,并且这是一个不错的选择,至少减少了文档中冗余的说明和沟通的成本。

文档引用

留下评论

电子邮件地址不会被公开。 必填项已用*标注