npm和npx的
NPM
npm 是一个node package installer commander tool。
在安装了node.js环境下可以通过npm i xxx 来安装你需要的node package到本地或者全局。
npm i webpack -G //全局安装,路径为 /usr/local/bin
npm i webpack -S -D //本地安装, 安装路径为 ./node-modules/.bin/
NPX
npx会在安装npm的时候一起安装到本地。npx有两个应用场景:
1、在没有安装package的情况下可以使用npx来运行,例如:
npx react-create-app init
// 会使用npm registry里面的react-create-app创建一个react app在本地,如果用npm的话需要先install
2、在没有全局安装某个package的情况下使用该包:npx webpack-dev-server --config webpack.dev.js
// 在没有全局安装webpack-dev-server 的时候,直接在命令行运行该包的命令是找不到的,会提示:
bash: webpack-dev-server: command not find
总结:
npm是一个node package安装工具。
npx的作用是先检查本地有没有安装某个package,如果没有去远程registry找,找到的话直接使用,不用下载到本地node-modules包里面,这样就能优化本地项目的大小,也可以避免安装package到全局。
npx用来解决全局命令行工具只能有一个的问题。
比如装个webpack,使用的是4.x,可是已经装了全局的1.x版本并且还要继续使用,这个时候可以不装在全局,用npx webpack代替webpack命令,互不干扰。
并且推荐这么使用。
npx是npm后来加的一个功能,不是同一种东西。当执行npx xxx的时候,npx先看xxxz在$PATH里有没有,如果没有,找当前目录的node_modules里有没有,如果还是没有,就安装这个xxx 来执行。 npx也可以理解为少些package.json里一个script而诞生的。
例如,如果运行npx some-package --no-install,意味着告诉npx ,它应该仅执行。some-package,如果之前未安装,则不安装。
示例:假设有一个名为my-package的软件包,想要执行它。若没有npx,要执行一个软件包,必须通过其本地路径运行来完成,如下所示:
./node_modules/.bin/my-package
或在 package.json文件的 scripts 中将其定义为单独的脚本,如下所示:
{ "name":"XXX", "version": "1.0.0", "scripts": { "my-package":"./node_modules/.bin/my-package" } }
然后使用npm run my-package运行。
现在,运用npx,只需运行npx my-package.,即可轻松实现此目的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)