Node.js:NPX

来自Wikioe
跳到导航 跳到搜索


关于

npx[1] 是“Node 包执行器”(npm 是“Node 包管理器”)

—— NPM 执行 Node 包:必须是本地安装的包,并通过定位本地路径或者配置 scripts 来执行。

—— NPX 可以运行本地包和远程包,能自动定位或安装。

NPX 用于执行 Node 包:

  1. 执行本地 Node 包时,NPX 会到 node_modules/.bin 路径和 环境变量 $PATH 里面,检查命令是否存在。
  2. 执行远程 Node 包时,NPX 会将 Node 包下载到一个临时目录中,使用以后再删除。


其目的就是让项目内部安装的模块用起来更方便。

示例

以下以 vite 为例,可以体会 npx 的方便之处。

不使用 npx 时

  1. 全局安装的 vite 可以直接运行:
    PS C:\Users\eijux> vite
    
      VITE v4.2.1  ready in 13186 ms
    
      ➜  Local:   http://localhost:5173/
      ➜  Network: use --host to expose
      ➜  press h to show help
    
  2. 局部安装的 vite(项目依赖):
    1. 项目目录中,通过 npm 命令运行:
      PS D:\Documents\VSCode\VueDemo> npm run dev
      
      > vuedemo@0.0.0 dev
      > vite
      
      
        VITE v4.2.1  ready in 663 ms
      
        ➜  Local:   http://localhost:5173/
        ➜  Network: use --host to expose
        ➜  press h to show help
      
      • npm runnpm run-script 的缩写,dev是在 package.json 中设置的脚本别名
      • 不能直接使用 npm run vite
        D:\Documents\VSCode\VueDemo>npm run vite
        npm ERR! Missing script: "vite"
        npm ERR!
        npm ERR! To see a list of scripts, run:
        npm ERR!   npm run
        
        npm ERR! A complete log of this run can be found in:
        npm ERR!     C:\Users\eijux\AppData\Local\npm-cache\_logs\2023-03-31T18_27_23_208Z-debug-0.log
        
    2. 项目依赖包可执行目录中,通过 .\vite.cmd 运行:
      PS D:\Documents\VSCode\VueDemo\node_modules\.bin> .\vite.cmd
      (!) Could not auto-determine entry point from rollupOptions or html files and there are no explicit optimizeDeps.include patterns. Skipping dependency pre-bundling.
      
        ➜  Local:   http://localhost:5173/
        ➜  Network: use --host to expose
        ➜  press h to show help
      
      • 这种方式,无法确定项目入口点,不能用于运行项目!
    3. 在 VSCode 等编辑器中运行:
      VSCode中运行vite.png

使用 npx

  1. 在非项目目录运行:
    PS C:\Users\eijux> npx vite
    Need to install the following packages:
      vite@4.2.1
    Ok to proceed? (y) n
    
    • 如果在 环境变量 $PATH 不能找到相关命令地址(未安装),则会提示安装。
  2. 在项目目录中运行:
    D:\Documents\VSCode\VueDemo>npx vite
    
      VITE v4.2.1  ready in 693 ms
    
      ➜  Local:   http://localhost:5173/
      ➜  Network: use --host to expose
      ➜  press h to show help
    
    • 自动定位并执行项目内部安装的模块

参考