首頁  >  文章  >  web前端  >  create-next-app 使用此套件驗證您的應用程式名稱

create-next-app 使用此套件驗證您的應用程式名稱

Barbara Streisand
Barbara Streisand原創
2024-10-16 06:24:30552瀏覽

在本文中,我們分析 create-next-app 如何驗證您的專案名稱。

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

您是否嘗試過在使用 create-next-app 命令時使用空格來命名您的項目?如果您這樣做了,您的專案中將不允許有空格,因為它在命名您的專案時遵循一定的原則。

那麼這些命名約定規則是什麼呢?

validateNpmName 函數

如果你檢查這個create-next-app/index.ts,它會呼叫一個名為validateNpmName的函數。這是從 helpers/validate-pkg.ts

導入的

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

這個函數很簡單,呼叫一個名為 validateProjectName 的函數,該函數是從 validate-npm-package-name 導入的。

文件說,如果名稱有效,您將得到以下物件:

{
 validForNewPackages: true,
 validForOldPackages: true
}

什麼使名稱有效?我們再檢查一下文件。文件提供了這些命名規則:

  1. 包名長度應大於零

  2. 包名中的所有字元必須為小寫,即不允許使用大寫或大小寫混合

  3. 套件名稱可以由連字組成

  4. 套件名稱不得包含任何非 url 安全字元(因為名稱最終是 URL 的一部分)

  5. 套件名稱不應以 .或 _

  6. 包名不能包含任何空格

  7. 套件名稱不應包含以下任何字元:~)(‘!*

  8. 套件名稱不能與node.js/io.js核心模組相同,也不能與保留/黑名單名稱相同。例如,以下名稱無效:

    — http

    — 流

    —node_modules

    — favicon.ico

  9. 包名長度不能超過214

這些是命名 Next.js 專案時應牢記的規則。

關於我們:

在 Think Throo,我們的使命是教授開源專案中使用的高階程式碼庫架構概念。

透過在 Next.js/React 中練習高階架構概念,將您的編碼技能提高 10 倍,學習最佳實踐並建立生產級專案。

我們是開源的 — https://github.com/thinkthroo/thinkthroo (請給我們一顆星!)

我們也提供網頁開發和技術寫作服務。請透過hello@thinkthroo.com聯絡我們以了解更多資訊!

參考文獻:

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



以上是create-next-app 使用此套件驗證您的應用程式名稱的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn