此操作為 GitHub Actions 使用者提供以下功能:
(可選)下載並快取所要求的 Node.js 版本的分發版,並將其新增至 PATH
可選擇快取 npm/yarn/pnpm 依賴項
註冊問題匹配器以進行錯誤輸出
配置 GPR 或 npm 的身份驗證
參見action.yml
- 使用:actions/setup-node@v4 with:# SemVer 表示法中使用的版本的版本規格。 Hydrogen,16-nightly,latest,nodenode-version: ''# 包含要使用的版本的版本規範的檔案。 範例:package.json、.nvmrc、.node-version、.tool-versions.# 如果同時提供了node-version 和node-version-file,則操作將使用node-version 中的版本。 node-version-file: ''# 如果您希望操作檢查滿足版本規範的最新可用版本,請設定此選項。 /氫)。 # 預設值: falsecheck-latest: false# Node 使用的目標架構。範例:x86、x64。預設將使用系統架構。此操作預設使用系統架構: ''# 用於從 https://github.com/actions/node-versions 拉取節點發行版。 # 由於有預設值,因此通常不是由使用者提供的。 # 在 github.com 上執行此操作時,預設值就足夠了。 # 在 GHES 上運行時,如果遇到速率限制,可以傳遞 github.com 的個人存取權杖。另外#在產生新的PAT 時,選擇所需的最少範圍。 workflow-with-github -actions/creating-and-using-encrypted-secrets)## 預設值:${{ github.server_url == 'https://github.com' && github.token || '' }}token: ''# 用於指定一個套件管理器,用於在預設目錄中進行快取。支援的值:npm、yarn、pnpm。目標檔案產生主鍵的雜湊值。僅當指定快取時才有效。 # 支援通配符或檔案名稱清單來快取多個相依性。將在專案層級.npmrc 和.yarnrc 檔案中設定登錄, # 並設定驗證以從env.NODE_AUTH_TOKEN 讀取。驗證的可選範圍。 # 使用GitHub Packages 註冊表(https://npm.pkg.github.com/) 時將回退到儲存庫擁有者。 。
基本的:
步驟: - 使用:actions/checkout@v4 - 使用:actions/setup-node@v4 with:節點版本:18-運行:npm ci-運行:npm test
node-version
輸入是可選的。如果未提供,將使用 PATH 中的節點版本。但是,建議始終指定 Node.js 版本,不要依賴系統版本。
該操作將首先檢查本地快取是否有 semver 匹配。如果無法在快取中找到特定版本,則該操作將嘗試下載 Node.js 的版本。它將從節點版本版本中提取 LTS 版本,並且在遺失或失敗時將回退到直接從節點 dist 下載的先前行為。
有關 GitHub 託管運行器上本地快取的 Node.js 版本的信息,請查看 GitHub Actions Runner Images。
node-version
輸入支援語意版本控制規範,有關更詳細的範例,請參閱 semver 套件文件。
範例:
20
版: 18
更具體的版本: 10.15
、 16.15.1
、 18.4.0
NVM LTS 語法: lts/erbium
、 lts/fermium
、 lts/*
、 lts/-n
最新版本: *
或latest
/ current
/ node
注意:與其他值一樣, *
將取得最新的本機快取 Node.js 版本,或從 actions/node-versions 取得最新版本,取決於check-latest
輸入。
current
/ latest
/ node
始終解析為最新的 dist 版本。然後,如果可能的話,從 actions/node-versions 下載該版本,如果沒有,則直接從 Node.js 下載。由於它不會始終被緩存,因此從 dist 下載時有可能達到速率限制
出於安全性和效能原因,始終建議提交套件管理器的鎖定檔案。有關更多信息,請參閱高級使用指南的“使用鎖定文件”部分。
該操作具有用於快取和恢復依賴項的內建功能。它在底層使用 actions/cache 來快取全域包數據,但需要較少的配置設定。支援的套件管理器有npm
、 yarn
、 pnpm
(v6.10+)。 cache
輸入是可選的,預設情況下快取是關閉的。
此操作預設在儲存庫根目錄中搜尋依賴檔案( package-lock.json
、 npm-shrinkwrap.json
或yarn.lock
),並使用其雜湊作為快取鍵的一部分。當使用多個依賴檔案或它們位於不同的子目錄中時,請使用cache-dependency-path
。
注意:該操作不會快取node_modules
請參閱進階使用指南中的對yarn
/ pnpm
和cache-dependency-path
輸入使用快取的範例。
快取 npm 依賴項:
步驟: - 使用:actions/checkout@v4 - 使用:actions/setup-node@v4 with:節點版本:20cache:'npm'-運行:npm ci-運行:npm test
在 monorepos 中快取 npm 依賴項:
步驟: - 使用:actions/checkout@v4 - 使用:actions/setup-node@v4 with:node-version: 20cache: 'npm'cache-dependency-path: subdir/package-lock.json- run: npm ci- run: npm test
作業:建置:執行:ubuntu-lateststrategy:矩陣:節點:[14,16,18]名稱:節點${{matrix.node}}範例步驟: - 使用:actions/checkout@v4 - 名稱:設定節點 使用:actions/setup-node@v4with:node-version:${{matrix.node }} - 執行:npm ci - 執行:npm test
setup-node
如果啟用了操作, setup-node
會透過 GHES 預先安裝在裝置上。動態下載 Nodejs 發行版時, setup-node
會從 github.com(裝置外部)上的actions/node-versions
下載發行版。這些對actions/node-versions
呼叫是透過未經身份驗證的請求進行的,每個 IP 每小時限制為 60 個請求。如果在該時間範圍內發出更多請求,那麼您將在下載過程中開始看到速率限制錯誤,如下所示: ##[error]API rate limit exceeded for...
。出現錯誤後,該操作將嘗試直接從官方網站下載版本,但它也可能有速率限制,因此最好放置令牌。
要獲得更高的速率限制,您可以在 github.com 上產生個人存取權杖並將其作為操作的token
輸入傳遞:
使用:actions/setup-node@v4with:令牌:${{secrets.GH_DOTCOM_TOKEN }} 節點版本:20
如果執行程式無法存取 github.com,則工作流程執行期間請求的任何 Nodejs 版本都必須來自執行程式的工具快取。有關更多信息,請參閱“在無法訪問互聯網的自託管運行器上設定工具快取”。
檢查最新版本
使用節點版本文件
使用不同的架構
使用 v8 金絲雀版本
使用夜間版本
使用 rc 版本
快取包數據
使用多種作業系統和架構
使用 npm 發佈到 npmjs 和 GPR
使用yarn 發佈到npmjs 和GPR
使用私有套件
該專案中的腳本和文件是在 MIT 許可證下發布的
歡迎貢獻!請參閱貢獻者指南
乖一點。請參閱我們的行為準則