Artifactory 范围的 npm 包在路径中有额外的 "scope"

Artifactory scoped npm packages have extra "scope" in path

我已经在 Artifactory 上的 npm-local 存储库中发布了一个范围内的 npm 包。例如,假设它是 package.json 中的 @scope/packagename。它在 Artifactory 上创建的路径似乎在路径中有一个额外的@scope:https://artifacts.company.com/artifactory/webapp/#/artifacts/browse/tree/General/npm-local/@scope/packagename/-/@scope/packagename-version.tgz

这是正确的吗?发布有问题吗?这与另一个问题有关:。当我尝试安装我刚刚发布的这个包时,出现 404 错误,让我相信路径可能有问题?

编辑: 为了发布我的范围包,我编辑了我的 .npmrc:

@scope:registry=https://artifacts.company.com/artifactory/api/npm/npm-local/
//artifacts.company.com/artifactory/api/npm/npm-local/:_password=Q......
//artifacts.company.com/artifactory/api/npm/npm-local/:username=dgriner
//artifacts.company.com/artifactory/api/npm/npm-local/:email=d.griner@company.com
//artifacts.company.com/artifactory/api/npm/npm-local/:always-auth=true

在我的 package.json 文件中,我有以下内容:

"name": "@scope/packagename",

然后我 运行 npm publish 它创建了上面的路径。

路径似乎没问题,应该不会导致解析错误。
NPM 包的物理位置不会影响它的解析方式。解析 NPM 包时,Artifactory 使用包元数据而不是其路径(与其他受支持的包管理器相反,例如依赖于存储库布局和工件路径的 Maven)。
如您所见,Artifactory 确实有一个用于存储 NPM 包的布局。虽然它不用于解决问题,但它可用于其他问题,例如配置细粒度的访问权限。