1

我需要将包发布到我的本地 npm(使用 verdaccio)

包名为:@myorg/database/auth. 但是 npm 抛出错误:

npm ERR! Invalid name: "@myorg/database/auth"

npm ERR! A complete log of this run can be found in:
Error: Command failed: npm publish --tag latest --access public --registry=https://verdaccio-dev.myorg.io

我必须使用那个名字。是否有忽略或解决方法的选项?

包的名称由nrwl/nx生成。所以我不能改变它,因为它会改变整个项目结构。

我能做些什么?

4

1 回答 1

0

我想问题是您正在使用如下代码生成库:

nx generate @nrwl/node:library --name=auth --directory=database

...并且您正在运行(或计划运行)这样的代码:

import { databaseAuth } from '@myorg/database/auth';

根据他们的文档nx不选择库名称。相反,开发人员有责任选择一个有效的名称。

使用 --publishable 生成库时的一个特殊性是,它还需要您提供 --importPath。你的导入路径是你的可分发包的实际范围(例如:@myorg/mylib)——它需要是一个有效的 npm 包名称。

所以,如果你运行这个:

nx generate @nrwl/node:library -name=auth --directory=database --importPath=@myorg/my-cool-db --publishable

...您应该能够将您的包发布为@myorg/my-cool-db. 但是,如果您指定--importPath=@myorg/database/auth或类似的东西(带有第二个斜杠),我想这就是问题的根源,您会想要更改importPath值。

于 2021-04-10T14:18:53.660 回答