no-banned-imports
Forhindre bruk av forbudte biblioteker og krev anbefalte alternativer.
Regeldetaljer
Section titled “Regeldetaljer”Team forbyr ofte tunge eller utdaterte biblioteker til fordel for lettere eller native alternativer. Denne regelen bruker en datadrevet konfigurasjon — en array med objekter som spesifiserer regex-mønsteret, biblioteknavnet og det anbefalte alternativet. Å legge til et nytt forbud er en endring på en linje.
Eksempler på feil kode
Section titled “Eksempler på feil kode”import { format } from "moment";import axios from "axios";Eksempler på riktig kode
Section titled “Eksempler på riktig kode”import { format } from "date-fns";const response = await fetch("/api/data");Regelimplementasjon
Section titled “Regelimplementasjon”/// <reference path="../rules.d.ts" />
const BANNED_IMPORTS = [ { pattern: /from\s+['"]lodash['"]/, name: "lodash", alternative: "native array methods", }, { pattern: /from\s+['"]moment['"]/, name: "moment", alternative: "Temporal API or date-fns", }, { pattern: /from\s+['"]axios['"]/, name: "axios", alternative: "native fetch()", },];
export default { rules: { "no-banned-imports": { description: "Prevent usage of banned libraries", async check(ctx) { for (const banned of BANNED_IMPORTS) { const matches = await ctx.grepFiles(banned.pattern, "src/**/*.ts"); for (const match of matches) { ctx.report.violation({ message: `Banned import: "${banned.name}" is not allowed. Use ${banned.alternative} instead.`, file: match.file, line: match.line, fix: `Replace ${banned.name} with ${banned.alternative}`, }); } } }, }, },} satisfies RuleSet;Når bør du bruke den
Section titled “Når bør du bruke den”Når teamet ditt har standardisert på bestemte biblioteker og vil forhindre avvik mot alternativer. Vanlige forbud inkluderer lodash (native metoder), moment (date-fns eller Temporal) og axios (native fetch).
Når bør du ikke bruke den
Section titled “Når bør du ikke bruke den”Når prosjektet ditt ikke har preferanser mellom biblioteker, eller når det forbudte biblioteket fremdeles er under aktiv migrering og noe bruk forventes midlertidig.