npx的使用和理解

npx

  • npm 从5.2版开始,增加了 npx 命令。它有很多用处
    1、不用全局安装npm包
    2、不用配置script直接调用项目内部安装的模块

package.json 如下

{
  "name": "laspluginlesson",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "vite"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "vite": "^5.4.9"
  }
}

  • 想在项目根目录下直接调用 vite build,报错 (vite 不是内部或外部命令,也不是可运行的程序)

  • 为什么找不到vite,我的node_modules里面明明已经安装vite了??
    原因:node_modules中是安装了vite,但是在终端中执行的命令是不会到项目根目录中查找的,这个就涉及到操作系统的查找策略了,当执行了vite计算机,他就会去环境变量path中查询node环境变量中,全局的node_modules中是否有vite,因为我们不是全局安装的vite,所以找不到

  • 为什么使用npm vite build 就可以执行了呢??
    原因:因为npm 是node的包管理器,安装node的时候自带的,执行npm vite时,npm包管理器的查询策略是在当前目录的node_modules中查找,如果找不到,就到父级文件中查找,直到找到根目录如果还没有,那就到环境变量中查找,因为当前目录中安装的有vite,所以可以执行

  • npx vite build 为什么也可以执行??
    原因:npx 是 npm出的一个命令,可以在没有安装npm包的情况下,去下载改包并执行命令,下载到一个临时目录,使用以后再自动删除

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

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

posted @ 2024-10-16 18:31  男孩亮亮  阅读(167)  评论(0编辑  收藏  举报