---
title: no-unapproved-deps
description: Begrens produksjonsavhengigheter til en godkjent tillatelsesliste for å kontrollere forsyningskjederisiko og avhengighetsoppblåsing.
---
Begrens produksjonsavhengigheter til en godkjent tillatelsesliste.
## Regeldetaljer
Store avhengighetstrær øker forsyningskjederisiko og blåser opp pakkestørrelser. Denne regelen leser `package.json` og rapporterer enhver produksjonsavhengighet som ikke står på en eksplisitt tillatelsesliste. Utviklingsavhengigheter sjekkes ikke.
## Eksempler på **feil** kode
```json title="package.json"
{ "dependencies": { "zod": "^3.23.0", "chalk": "^5.3.0" } }
```
Hvis bare `zod` står på den godkjente listen, utløser `chalk` et brudd.
## Eksempler på **riktig** kode
```json title="package.json"
{
"dependencies": { "zod": "^3.23.0" },
"devDependencies": { "chalk": "^5.3.0" }
}
```
Alle produksjonsavhengigheter står på den godkjente listen. Biblioteker som bare trengs ved byggetidspunkt ligger i `devDependencies`.
## Regelimplementasjon
```typescript
///
const APPROVED_DEPS = [
"@commander-js/extra-typings",
"inquirer",
"@modelcontextprotocol/sdk",
"zod",
];
export default {
rules: {
"no-unapproved-deps": {
description: "Production dependencies must be on the approved list",
async check(ctx) {
let pkg: { dependencies?: Record };
try {
pkg = (await ctx.readJSON("package.json")) as typeof pkg;
} catch {
return; // No package.json — nothing to check
}
const deps = Object.keys(pkg.dependencies ?? {});
for (const dep of deps) {
if (!APPROVED_DEPS.includes(dep)) {
ctx.report.violation({
message: `Unapproved production dependency: "${dep}". Approved: ${APPROVED_DEPS.join(", ")}`,
file: "package.json",
fix: `Either add "${dep}" to the approved list in the ADR or move it to devDependencies`,
});
}
}
},
},
},
} satisfies RuleSet;
```
## Når du bør bruke den
Når teamet ditt har en eksplisitt policy for avhengighetsstyring og ønsker å forhindre at ikke-godkjente pakker havner i produksjonspakken.
## Når du ikke bør bruke den
I prosjekter i tidlig fase der avhengighetslisten fortsatt utvikles raskt, eller når avhengighetsstyring håndteres av et eget verktøy som Socket eller Snyk.