pnpm 第四章(pnpm CLI与npm CLI的差异)

124 阅读1分钟

未标题-1.png

pnpm CLI是一个类似于npm的包管理工具,但它在某些方面有所不同,特别是在参数校验上。与npm不同,pnpm不会忽略无效的参数。

例如,使用pnpm install --target_arch x64会失败,因为--target_arch x64不是一个有效的参数。

如果你需要设置某些特定的环境变量,你可以通过以下两种方式之一:

  1. 设置明确的环境变量:

    npm_config_target_arch=x64 pnpm install
    

    这种方式直接设置了环境变量npm_config_target_archx64,然后执行pnpm install

  2. 使用--config.来强制使用未知选项:

    pnpm install --config.target_arch=x64
    

    这里,--config.target_arch=x64是通过--config.选项强制传递给pnpm的。

pnpm CLI还提供了一些有用的配置项。例如:

  • -C <path>, --dir <path>:在指定的<path>路径中启动pnpm,而不是当前工作目录。
  • -w, --workspace-root:在工作空间的根目录中启动pnpm,而不是当前工作目录。

在命令行方面,pnpm提供了一些简便的命令等效列表,帮助你快速上手。例如,npm install在pnpm中等效于pnpm install,而npm i <pkg>等效于pnpm add <pkg>

如果你执行一个未知命令,pnpm会尝试查找一个具有指定名称的脚本,所以pnpm run lintpnpm lint是等价的。如果没有找到相应的脚本,pnpm将以shell脚本的形式执行该命令,例如pnpm eslint

此外,一些与pnpm无关的环境变量也可能会影响其行为,比如CI环境变量和一些XDG相关的环境变量,它们会影响pnpm存储全局信息的目录位置。