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到全局。

来自转载链接:https://www.jianshu.com/p/50ce356e514a

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.,即可轻松实现此目的。

 

posted @   torilee  阅读(326)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示