You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

配置包含规则后Artifactory NPM虚拟仓库安装包报404错误求助

Artifactory NPM虚拟仓库包含规则导致包404的解决方案
  • 检查包含规则的格式匹配
    NPM包的路径匹配和Artifactory的规则语法可能存在差异,别默认base-hmi-test/**就一定能匹配。试试改成base-hmi-test或者base-hmi-test/*——有些版本的Artifactory对NPM包的规则匹配是基于包名前缀,而非目录式的/**。如果包是带scope的(比如@foo/base-hmi-test),规则得写成@foo/base-hmi-test或者@foo/base-hmi-test/**,得确保包名和规则完全对应上。

  • 确认虚拟仓库的成员仓库顺序
    要是虚拟仓库包含多个成员仓库,规则是按顺序匹配的。如果你的base-hmi-test包在某个成员仓库里,但虚拟仓库的成员列表里这个仓库优先级靠后,可能导致规则匹配时没找到。把存放目标包的仓库移到成员列表的最前面试试。

  • 清除缓存再试
    Artifactory可能缓存了之前的规则匹配结果,先去后台清掉对应仓库的缓存;本地执行npm cache clean --force,清空本地npm缓存后再重新跑npm install,避免旧的注册表缓存搞事情。

  • 核对包的实际存储路径
    登进Artifactory找到base-hmi-test包的存储位置,看看它的实际路径和规则能不能对上。比如包的路径是base-hmi-test/-/base-hmi-test-1.0.0.tgz,那base-hmi-test/**应该能匹配,但如果是带scope的包,路径是@foo/base-hmi-test/-/base-hmi-test-1.0.0.tgz,那规则必须包含scope部分才行。

  • 排查Artifactory版本的已知bug
    某些旧版本的Artifactory(比如7.x早期版本)确实存在NPM虚拟仓库规则匹配的bug。查一下官方的版本更新说明,看看你当前用的版本有没有相关修复,有的话直接升级到最新稳定版试试。

  • 测试规则的匹配有效性
    在Artifactory的仓库规则配置页,用自带的测试功能(如果有的话)输入目标包名,验证规则能不能正确匹配到包。要是测试不通过,说明规则写法有问题,调整后再测。

内容的提问来源于stack exchange,提问作者herbert

火山引擎 最新活动