Artifactory范围的npm包在路径中有额外的“范围”

时间:2016-11-30 19:24:08

标签: node.js npm artifactory

我在Artifactory上的npm-local repo中发布了一个范围内的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

这是对的吗?发布有问题吗?这与另一个问题有关:Installing scoped npm packages from Artifactory。当我尝试安装此软件包时,我刚刚发布了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并创建了上述路径。

1 个答案:

答案 0 :(得分:1)

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