Implementation:Langgenius Dify Pnpm Lock
| Knowledge Sources | |
|---|---|
| Domains | Frontend, DependencyManagement, BuildConfig |
| Last Updated | 2026-02-12 07:00 GMT |
Overview
The pnpm dependency lockfile that pins exact versions of all direct and transitive npm packages for the Dify frontend, ensuring deterministic and reproducible builds.
Description
web/pnpm-lock.yaml is the lockfile generated and maintained by the pnpm package manager. At approximately 15,964 lines, it records:
- Exact resolved versions of every direct dependency listed in
web/package.json - Transitive dependency tree with all sub-dependencies pinned to specific versions
- Integrity hashes (SHA-512) for each package to ensure supply chain security
- Peer dependency resolutions to handle compatibility between packages
- Registry URLs identifying where each package was fetched from
The lockfile ensures that every developer and CI/CD environment installs the exact same set of packages, preventing "works on my machine" issues caused by floating version ranges.
Key characteristics:
- Managed exclusively by
pnpm installandpnpm updatecommands - Should never be manually edited
- Must be committed to version control to ensure build reproducibility
- Uses pnpm's content-addressable storage format for efficient disk usage
Usage
This file is consumed automatically by pnpm when running pnpm install in the web/ directory. It ensures all team members and CI pipelines use identical dependency versions.
Code Reference
Source Location
- Repository: Langgenius_Dify
- File: web/pnpm-lock.yaml
- Lines: ~15,964
Data Structure
lockfileVersion: '9.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
importers:
.:
dependencies:
react:
specifier: ^18.x
version: 18.x.x
next:
specifier: ^14.x
version: 14.x.x
devDependencies:
typescript:
specifier: ^5.x
version: 5.x.x
packages:
/package-name@version:
resolution: {integrity: sha512-...}
engines: {node: '>=18'}
dependencies:
sub-dependency: version
Import
# Not imported in code; consumed by pnpm:
cd web && pnpm install
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| package.json | file | Yes | The dependency specification file that pnpm-lock.yaml resolves against |
Outputs
| Name | Type | Description |
|---|---|---|
| Deterministic node_modules | directory | Exact dependency tree installed by pnpm from the lockfile |