Anzeige
Anzeige
Tool-Tipp

Scriptlint: Dieses Tool bringt Ordnung in eure Script-Section

In der Web-Entwicklung gibt es Konventionen für alles Mögliche. Nur nicht für die Benennung eurer package.json-Skripte. Scriptlint ist ein Open-Source-Projekt, das diese Lücke füllen will – Skripte brauchen schließlich auch Liebe. 

3 Min.
Artikel merken
Anzeige
Anzeige

(Foto: Kosal/Shutterstock)

Code-Qualität ist mittlerweile keine Verhandlungssache mehr. Tools wie Prettier sorgen für die korrekte Formatierung eures Codes, mit ES-Lint oder JS-Hint lassen sich Konventionen durchsetzen, sodass eine Codebase maintainable bleibt. Nur für package.json-Skripte gibt es (bisher) weder derartige Standards, noch ein Tool, das für deren Durchsetzung sorgt. Dabei sind sie eigentlich ein wichtiger Teil der Node-Entwickler-Experience: Ihr braucht sie, um Projekte zu starten, Entwicklungsumgebungen auszuführen und für Formatierung, Linting und Tooling.

Das Thema ist nicht neu

Anzeige
Anzeige

Ein Ansatz, ein gewisses Maß an Ordnung in die Script-Section zu bringen, ist nps, ein Package, das es erlaubt, eure Skripte von der package.json in eine package-scripts.js oder sogar in eine package-scripts.yaml-Datei zu bewegen – das hat zum Beispiel den Vorteil, dass ihr die Skripte zumindest direkt in der Datei kommentieren könnt, um auch morgen noch zu wissen, welches wofür da ist. Für Einheitlichkeit bei der Benennung sorgt das Tool aber nicht.

Fehlende Standards

Moritz Jacobs hat in seiner Funktion als Entwickler einer Augsburger Agentur oft genug mit großen Codebases zu tun, bei denen genau das nicht gegeben ist. Große Repositories mit unterschiedlichen Projekten, die alle über eine eigene package.json verfügen, in der alle Skripte unterschiedlich benannt sind, übergeben zu bekommen, ist in seinem Arbeitsalltag keine Seltenheit. Sich jeweils pro Repo merken zu müssen, was genau jetzt durch npm run start getriggert wird, fand er einfach nicht besonders effizient.

Anzeige
Anzeige

Das Problem dabei: Es gibt keinen Standard dafür. Design und Benennung von npm-Skripten liegen in der Verantwortung des Einzelnen, es gibt keine Richtlinien, die als Best Practice gelten. Ein Weg wäre jetzt, einfach ein Paper zu veröffentlichen, in dem mögliche Best Practices diskutiert werden und zu hoffen, dass es irgendjemand lesen und die Community dem zustimmen würde. Jacobs und sein Team haben sich stattdessen dafür entschieden, mit Scriptlint ein CLI- Tool zu designen. Ähnlich wie ES-Lint dafür sorgt, dass ihr nur JS-Code committed, der gewissen Standards entspricht, die ihr allerdings costumizen und ergänzen könnt, sorgt Scriptlint für Ordnung bei der Benennung und Struktur eurer Skripte innerhalb der package.json eines Projekts.

Anzeige
Anzeige

2 Modi

Das Tool verfügt über zwei Modi. Im Default-Mode werden nur einige grundlegende Regeln durchgesetzt:

Eure package.json muss ein "test"-Script (nicht das Default-Script von npm init), ein "dev"– und ein "start"-Script beinhalten:

Anzeige
Anzeige
{
    "scripts": {
        "start": "...",
        "test": "...",
        "dev": "...",
    }
}

Im Strict-Mode sorgt das Tool außerdem für die Einhaltung folgender Vorgaben:

Entwickler sollen Namespaces nutzen, um die Skripte zu kategorisieren und diese durch : zu trennen. Die Namen eurer Skripte dürfen nicht denen der Implementation entsprechen, bei "jest": "jest" würde das Tool entsprechend meckern, "test": "jest" wäre akzeptiert.

Zudem sortiert Scriptlint eure Skripte in alphabetischer Reihenfolge, kontrolliert, ob alle Skript-Namen in Camel-Case geschrieben sind und legt fest, dass es ein Trigger-Script für alle Hooks geben muss – das heißt, ein Skript wie "prepublish": "run lint" wird nur akzeptiert, wenn es auch ein "publish":"..."-Skript gibt. Auch die verbreitete Praxis, für sequentielle oder parallele Ausführung & respective && zu verwenden, kreidet das Tool im Strict-Mode an. Das heißt aber nicht, dass ihr stattdessen eure Skripte jeweils über ein separates Terminal ausführen müsst, dafür könnt ihr zum Beispiel ein Tool wie concurrently nutzen.

Anzeige
Anzeige

Wer grundsätzlich Verwendung für Scriptlint finden würde, sich aber an einzelnen Punkten, wie beispielsweise der alphabetischen Sortierung störe, könne ungewünschte Features auch ausschalten, so Jacobs im Gespräch mit t3n. Innerhalb der Agentur würde das Tool bereits fleißig genutzt und das Team um das Projekt feile fleißig daran weiter. Wer sich beteiligen möchte: Pull-Requests sind natürlich herzlich willkommen.

Passend dazu: Destiny: Prettier für die File-Struktur eurer Codebase

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige