首页 > 解决方案 > 使用 npm package 验证包名

问题描述

有没有办法使用 npm 包来验证包名?

const npm = require('npm');

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

我看到一个用户区包可以做到这一点,但 npm 包本身肯定可以做到这一点吗?是否有从该包导出的公共实用程序?

标签: node.jsnpm

解决方案


有效名称

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


推荐阅读