安装 pnpm 包管理器。
version
要安装的 pnpm 版本。
当package.json
中有packageManager
字段时可选。
否则,此字段是必需的它支持 npm 版本控制方案,它可以是确切的版本(例如6.24.1
),或版本范围(例如6
, 6.xx
, 6.24.x
, ^6.24.1
, *
,等),或latest
.
dest
可选存储 pnpm 文件的位置。
run_install
可选(默认值: null
)如果指定,请运行pnpm install
。
如果run_install
为null
或false
,pnpm 将不会安装任何 npm 软件包。
如果run_install
为true
,pnpm 将递归安装依赖项。
如果run_install
是对象或数组的 YAML 字符串表示形式,则 pnpm 将执行每个安装命令。
run_install.recursive
可选(类型: boolean
,默认: false
)是否使用pnpm recursive install
。
run_install.cwd
可选(类型: string
)运行pnpm [recursive] install
时的工作目录。
run_install.args
可选(类型: string[]
) pnpm [recursive] install
之后的附加参数,例如[--frozen-lockfile, --strict-peer-dependencies]
。
package_json_file
可选(类型: string
,默认值: package.json
)用于读取“packageManager”配置的package.json
的文件路径。
standalone
可选(类型: boolean
,默认值: false
)当设置为 true 时,将安装 @pnpm/exe(Node.js 捆绑包),从而可以在没有 Node.js 的情况下使用pnpm
。
当您想要使用一对不兼容的 Node.js 和 pnpm 时,这非常有用。
dest
输入的扩展路径#dest。
bin_dest
pnpm
和pnpx
命令的位置。
on :
- push
- pull_request
jobs :
install :
runs-on : ubuntu-latest
steps :
- uses : pnpm/action-setup@v2
with :
version : 8
on :
- push
- pull_request
jobs :
install :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v3
- uses : pnpm/action-setup@v2
with :
version : 8
run_install : |
- recursive: true
args: [--frozen-lockfile, --strict-peer-dependencies]
- args: [--global, gulp, prettier, typescript]
on :
- push
- pull_request
jobs :
cache-and-install :
runs-on : ubuntu-latest
steps :
- name : Checkout
uses : actions/checkout@v3
- name : Install Node.js
uses : actions/setup-node@v3
with :
node-version : 16
- uses : pnpm/action-setup@v2
name : Install pnpm
with :
version : 7
run_install : false
- name : Get pnpm store directory
shell : bash
run : |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses : actions/cache@v3
name : Setup pnpm cache
with :
path : ${{ env.STORE_PATH }}
key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys : |
${{ runner.os }}-pnpm-store-
- name : Install dependencies
run : pnpm install
注意:最后不需要运行pnpm store prune
; post-action 已经解决了这个问题。
此操作不会为您设置 Node.js,请自行使用 actions/setup-node。
麻省理工学院 © Hoàng Văn Khải