npm依赖项的硬编码Shrinkwrap url的替代方案

JFrog支持
2023-01-22 11:07

硬编码NPM依赖url不是最佳实践,收缩包装url在与代理交互时存在问题。从事任何一种练习都可能导致以下结果错误

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

尽管Artifactory不支持npm依赖的收缩包装url,硬编码的url也不在Artifactory的控制范围内,但有几种方法可以解决这些问题:

  1. 忽略收缩膜,使用如下论点:
    1. NPM install -no-shrinkwrap
    2. 请注意:这将引入一个风险,即依赖项安装的版本将与shrinkwrap中定义的版本不同
  2. 变化的依赖关系
    1. 改变registry.npmjs.org< artifactory: port > / artifactory / api / npm / npmjspackage.json
    2. 请注意:这可以是一个单调乏味的进程,特别是具有大量依赖关系的进程。
  3. 侧面装载该神器
    1. 用户解析为虚拟存储库
    2. 定期复制的内容远程缓存当地的存储库
    3. 注意:此方法可能会导致延迟在你得到最新的文物。

更多信息请查阅在这里