平时在看技术文档时,经常看到一个名词:
npx。之前一直认为这个玩意是与npm一样的东西,所以也没有花时间去处理。最近闲下来之后,花了点时间查了下资料。这不查不知道,一查吓一跳:自己的理解完全不对。所以在此做个笔记记录一下。
npm
什么是 npm
通常情况下 npm 的概念有三个:
- npm 社区:
- 与 github 一样,是一个开源的代码托管平台(已经于 2020 年 3 月 17 日被 github 收购了,现在算的上是 github 的一个子网站了)
- 包管理器
- 用来管理下载第三方包的工具(也是我们平时用到的)
包管理器
本质上就是将一些开发过程中用到第三方包放到一个的服务器中,安装 npm 之后就可以直接使用 npm i xxx 来下载这个文件。而作为用户,我们只需要安装 npm ,使用它的下载指令就可以了。
安装 npm
一般情况,我们不需要主动去安装 npm。因为在安装 node 环境时,npm 会作为一个附加工具被安装。也就意味着,只要你安装了 node 基本上也就是等同于安装了 npm
npm 常用指令:
以下罗列部分
npm的常用指令
-
镜像相关
npm config set registry https://registry.npm.taobao.org # 添加镜像 npm config delete registry # 删除镜像 -
安装相关
npm init # 初始化 package.json 文件 npm init -y # 初始化 package.json 文件并且自动生成配置项 npm install # 安装 package.json 文件中所有的依赖项 npm install 包名 # 安装第三方包 npm install 包名@1.1 # 安装指定第三方包 npm install 包名 -g # 全局安装 npm uninstall 包名 # 卸载第三方包 npm update 包名 # 更新第三方包 -
其它指令
npm run xx # 运行 package.json 中 script 下的指令
npx
什么是 npx
在脚手架越来越泛滥的今天,只要学习新的框架,大部分的框架都需要我们去安装他们自己的脚手架。这样会造成安装的工具越来越多。其中的一些工具可以一次安装,一次使用,终身不再需要。而 npx 就可以用来解决这个问题。
安装 npx
npx 也是 node 的一个附属品,在安装 node 时,如果安装的 npm 的版本是 5.2.0 以上的话,npx 会自动被安装。
npx 的功能
一般现在对
npx的使用主要有两个
- 执行项目安装的模块
- 调用全局安装的模块
执行项目安装的模块
如果我们安装了一个第三方包 vue-cli-service,如果我们要执行这个第三方包一般会直接在 package.json 中的 script 下配置好指令 "serve": "vue-cli-service serve"。 但是有了 npx 之后,我们可以不需要配置这个指令,直接使用 npx vue-clie-service serve 就可以了。
无需全局安装模块
如果我们要创建一个 nuxt.js 项目,可以使用 npx create-nuxt-app <my-project>,这样就可以不进行全局安装,但是直接使用 create-nuxt-app 模块了。它的工作原理是:会先去项目中找 create-nuxt-app ,找不到就会到一个临时目录下去下载 create-nuxt-app 模块,使用之后再删除这个模块。
总结
- npm :下载第三方包
- npx :不全局安装模块的基础上使用这些模块的功能