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