我希望能够缓存npm依赖项,这样我每次推送时就不必再执行npm install,而是直接从缓存中加载。
我想github action现在支持这个功能了吧?:如何在GitHub Actions中缓存步骤?
以下是几种情况:
- 如果
package.json
更改了,则表示yarn.lock
或package-lock.json
也会更改,因此需要执行npm install并更新缓存 - 扩展上述观点,贡献者可能会同时执行
yarn install
和npm install
根据上述问题,我将我的github action更改为以下内容:
name: Tsc compilation test
on: [push, pull_request]
jobs:
build:
name: Build
runs-on: ubuntu-18.04
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cache NPM dependencies
uses: actions/cache@v1
with:
path: ~/.npm
key: ${{ runner.OS }}-npm-cache-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-npm-cache-
- name: Install dependencies
run: npm install
- name: Test tsc
run: npm run ts-compile-check
我仍然执行了npm install
,但安装依赖项的计算时间没有减少(所以我不确定这是否正常工作)
然后我执行了yarn install axios
,希望更新我的缓存,但在安装后我看到以下内容被记录下来:
Post job cleanup.
Cache hit occurred on the primary key Linux-npm-cache-, not saving cache.
所以这是我的问题,是否有可能实现:
- 如果
package.json
发生更改,则意味着yarn.lock
或package-lock.json
也发生了更改,因此执行npm install
并更新缓存。 - 扩展我上面的观点,贡献者可以同时执行
yarn install
和npm install
。
还有人能解释一下这个吗?
with:
path: ~/.npm
key: ${{ runner.OS }}-npm-cache-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-npm-cache-