npm Dependencies硬编码Shrinkwrap url的替代方案

JFrog支持
2023-01-22 11:07

硬编码NPM依赖url并不是最佳实践,而且众所周知,当与代理交互时,shrinkwrap url会出现问题。从事任何一种练习都可以产生以下结果错误

  • Npm install -ddd将显示忽略.npmrc配置的解析
    • 通常会去registry.npmjs.org
  • 解析结果为400错误
    • 一个可能的错误是“我是茶壶”。
  • 如果registry.npmjs.org不可用,解析可能会超时

虽然Artifactory不支持npm依赖的shrinkwrap url,而且硬编码的url也不在Artifactory的控制范围内,但有几种方法可以解决这些问题:

  1. 忽略shrinkwrap,使用参数:
    1. NPM install -no-shrinkwrap
    2. 请注意:这会带来依赖项安装的版本与shrinkwrap中定义的版本不同的风险
  2. 变化的依赖关系
    1. 改变registry.npmjs.org< artifactory: port > / artifactory / api / npm / npmjspackage.json
    2. 请注意这可以是一个单调乏味的进程,尤指具有大量依赖项的进程。
  3. 旁路加载工件
    1. 用户解析为虚拟存储库
    2. 定期复制的内容远程缓存当地的存储库
    3. 注意:这种方法可能会导致故障延迟在你得到最新的文物。

更多信息请访问在这里