Heim > Web-Frontend > js-Tutorial > create-next-app validiert Ihren App-Namen mithilfe dieses Pakets

create-next-app validiert Ihren App-Namen mithilfe dieses Pakets

Barbara Streisand
Freigeben: 2024-10-16 06:24:30
Original
577 Leute haben es durchsucht

In diesem Artikel analysieren wir, wie create-next-app Ihren Projektnamen validiert.

validate: (name) => {
 const validation = validateNpmName(basename(resolve(name)))
 if (validation.valid) {
   return true
 }
 return 'Invalid project name: ' + validation.problems[0]
},
Nach dem Login kopieren

Haben Sie versucht, Ihr Projekt mit Leerzeichen zu benennen, wenn Sie den Befehl „create-next-app“ verwenden? Wenn Sie dies getan haben, werden keine Leerzeichen in Ihrem Projekt zugelassen, da bei der Benennung Ihres Projekts bestimmte Grundsätze befolgt werden.

Was sind also diese Namenskonventionsregeln?

validateNpmName-Funktion

Wenn Sie diese Datei „create-next-app/index.ts“ überprüfen, wird eine Funktion namens „validateNpmName“ aufgerufen. Dies wird aus helpers/validate-pkg.ts

importiert

create-next-app validates your app name using this package

Diese Funktion ist einfach und ruft eine Funktion namens „validateProjectName“ auf, die aus „validate-npm-package-name“ importiert wird.

Die Dokumentation besagt, dass Sie das folgende Objekt zurückerhalten, wenn ein Name gültig ist:

{
 validForNewPackages: true,
 validForOldPackages: true
}
Nach dem Login kopieren

Was macht einen Namen gültig? Schauen wir uns noch einmal die Dokumentation an. Die Dokumentation stellt diese Benennungsregeln bereit:

  1. Die Länge des Paketnamens sollte größer als Null sein

  2. Alle Zeichen im Paketnamen müssen Kleinbuchstaben sein, d. h. Namen in Groß- und Kleinschreibung sind nicht zulässig

  3. Paketname kann aus Bindestrichen bestehen

  4. Der Paketname darf keine nicht URL-sicheren Zeichen enthalten (da der Name letztendlich Teil einer URL ist)

  5. Paketname sollte nicht mit beginnen. oder _

  6. Paketname sollte keine Leerzeichen enthalten

  7. Der Paketname sollte keines der folgenden Zeichen enthalten: ~)(‘!*

  8. Der Paketname darf weder mit einem node.js/io.js-Kernmodul noch mit einem reservierten/schwarzen Listennamen identisch sein. Beispielsweise sind die folgenden Namen ungültig:

    — http

    — Stream

    — node_modules

    — favicon.ico

  9. Die Länge des Paketnamens darf 214 nicht überschreiten

Dies sind die Regeln, die Sie bei der Benennung Ihres Next.js-Projekts beachten sollten.

Über uns:

Bei Think Throo haben wir die Mission, die fortgeschrittenen Codebasis-Architekturkonzepte zu vermitteln, die in Open-Source-Projekten verwendet werden.

Verzehnfachen Sie Ihre Programmierkenntnisse, indem Sie fortgeschrittene Architekturkonzepte in Next.js/React üben, die Best Practices erlernen und Projekte in Produktionsqualität erstellen.

Wir sind Open Source – https://github.com/thinkthroo/thinkthroo (Geben Sie uns einen Stern!)

Wir bieten auch Webentwicklungs- und technische Redaktionsdienste an. Kontaktieren Sie uns unter hello@thinkthroo.com, um mehr zu erfahren!

Referenzen:

1. https://github.com/vercel/next.js/blob/canary/packages/create-next-app/index.ts#L162

2. https://github.com/vercel/next.js/blob/canary/packages/create-next-app/helpers/validate-pkg.ts#L13

3. https://www.npmjs.com/package/validate-npm-package-name

4. https://github.com/npm/validate-npm-package-name/tree/main



Das obige ist der detaillierte Inhalt voncreate-next-app validiert Ihren App-Namen mithilfe dieses Pakets. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage