|
1 | 1 | ## Working with lockfiles |
2 | 2 |
|
3 | | -All supported package managers recommend that you **always** commit the lockfile, although implementations vary doing so generally provides the following benefits: |
| 3 | +Most supported package managers recommend that you **always** commit the lockfile, although implementations vary doing so generally provides the following benefits: |
4 | 4 |
|
5 | 5 | - Enables faster installation for CI and production environments, due to being able to skip package resolution. |
6 | 6 | - Describes a single representation of a dependency tree such that teammates, deployments, and continuous integration are guaranteed to install exactly the same dependencies. |
@@ -35,6 +35,25 @@ Ensure that `pnpm-lock.yaml` is always committed, when on CI pass `--frozen-lock |
35 | 35 | - [Working with Git - Lockfiles](https://pnpm.io/git#lockfiles) |
36 | 36 | - [Documentation of `--frozen-lockfile` option](https://pnpm.io/cli/install#--frozen-lockfile) |
37 | 37 |
|
| 38 | +### Running without a lockfile |
| 39 | + |
| 40 | +If you choose not to use a lockfile, you must ensure that **caching is disabled**. The `cache` feature relies on the lockfile to generate a unique key for the cache entry. |
| 41 | + |
| 42 | +To run without a lockfile: |
| 43 | +1. Do not set the `cache` input. |
| 44 | +2. If your `package.json` contains a `packageManager` field set to npm (or devEngines.packageManager), automatic caching is enabled by default. Override this by setting `package-manager-cache: false`. |
| 45 | + |
| 46 | +```yaml |
| 47 | +steps: |
| 48 | +- uses: actions/checkout@v6 |
| 49 | +- uses: actions/setup-node@v6 |
| 50 | + with: |
| 51 | + node-version: '24' |
| 52 | + package-manager-cache: false # Explicitly disable caching if you don't have a lockfile |
| 53 | +- run: npm install |
| 54 | +- run: npm test |
| 55 | +``` |
| 56 | +
|
38 | 57 | ## Check latest version |
39 | 58 |
|
40 | 59 | The `check-latest` flag defaults to `false`. When set to `false`, the action will first check the local cache for a semver match. If unable to find a specific version in the cache, the action will attempt to download a version of Node.js. It will pull LTS versions from [node-versions releases](https://github.com/actions/node-versions/releases) and on miss or failure will fall back to the previous behavior of downloading directly from [node dist](https://nodejs.org/dist/). Use the default or set `check-latest` to `false` if you prefer stability and if you want to ensure a specific version of Node.js is always used. |
|
0 commit comments