используйте пакет npm для проверки имени пакета - PullRequest
0 голосов
/ 26 апреля 2018

Есть ли способ использовать пакет npm для проверки имени пакета?

const npm = require('npm');

const isValid = npm.validatePackageName('foobar'); // true
const isValid = npm.validatePackageName('-4! *'); // false

Я вижу пакет userland, который делает это, но наверняка сам пакет npm может это сделать? Существует ли публичная утилита, экспортированная из этого пакета?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Правила именования:

Ниже приведен список правил, которым должно соответствовать действительное имя пакета npm:

  • Длина имени пакета должна быть больше нуля.
  • Все символы в имени пакета должны быть строчными, т.е. без заглавных букв или смешанные имена допускаются.
  • Имя пакета может состоять из дефисов.
  • Имя пакета не должно содержать небезопасных символов (поскольку имя заканчивается быть частью URL).
  • Имя пакета не должно начинаться с . или _.
  • Имя пакета не должно содержать начальных или конечных пробелов.
  • Имя пакета не должно содержать следующие символы: ~)('!*
  • Имя пакета не может совпадать ни с базовым модулем node.js / io.js, ни с зарезервированное / занесенное в черный список имя. Например, следующие имена недопустимы:
    • http
    • stream
    • node_modules
    • favicon.ico
  • Длина имени пакета не может превышать 214.

Название вашего пакета состоит из *; вот где возникает проблема.

0 голосов
/ 10 мая 2018

Действительные имена

var validate = require("validate-npm-package-name")

validate("some-package")
validate("example.com")
validate("under_score")
validate("123numeric")
validate("excited!")
validate("@npm/thingy")
validate("@jane/foo.js")

Все вышеперечисленные имена действительны, поэтому вы получите этот объект обратно:

{
  validForNewPackages: true,
  validForOldPackages: true
}

Неверные имена

validate(" leading-space:and:weirdchars")

Это никогда не было действительным именем пакета, поэтому вы получите следующее:

{
  validForNewPackages: false,
  validForOldPackages: false,
  errors: [
    'name cannot contain leading or trailing spaces',
    'name can only contain URL-friendly characters'
  ]
}

источник: https://github.com/npm/validate-npm-package-name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...