请考虑以下构建:
- 没有 npm 缓存的第三次构建
- 使用 npm 缓存的第三次构建
这两个存储库几乎相同,唯一的区别是后一个存储库通过setup-node
GitHub Action缓存npm
,而前一个则不然。换句话说,存储库之间的唯一区别在于.github/workflows/main
文件:
name: Build Pipeline
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '11'
# Following line is present only on the latter repository
cache: 'npm'
- run: npm install
- run: npm run build
尽管在"setup-node-with-cache"处的构建成功地使用了npm缓存(从Run actions/setup-node@v2
步骤的输出中可以看出),Run npm install
步的运行时间几乎与"setup-node-without-cache"处构建的相应步骤相同。
在"setup-node-with-cache"构建Run npm install
步骤的运行时间不应该比在"setup-node-without-cache"构建的相应步骤短得多,因为它应该使用缓存的npm包?我在这里错过了什么吗?
至少在GitHub Actions 上,它似乎真的不是。我发现的解决方法是缓存实际的node_modules
文件夹,即使"不推荐"。缓存实际的node_modules
文件夹确实可以加快npm install
速度。