Azure DevOps 扩展缓存错误 node_modules
Azure DevOps extension cache wrong node_modules
一般:我开发了一个带有任务和管道装饰器的 Azure DevOps 扩展。在本地 Azure DevOps Server 实例上进行测试。通过管理本地硬盘驱动器的扩展程序加载的扩展程序。假设我第一次安装了版本为 1.0.0 的扩展和一个版本为 2.0.0 的 node_modules 依赖项“3rdPartyDep”,它具有带有漏洞的传递依赖项。
场景:
- 升级“3rdPartyDep”至3.0.0版本,修复漏洞。构建我的扩展的新版本,比如 1.0.1。创建 .vsix,更新 Azure DevOps 服务器中的扩展。
- 运行 一个管道,它失败了,因为我没有检查“3rdPartyDep”更改并且有重大更改并且扩展失败 运行。
- 将“3rdPartyDep”库回滚到 2.0.0,因为我现在没有时间检查那里有什么问题,因为我还有其他要调试和实施的东西,重新打包扩展,将版本增加到 1.0.2 , 在 Azure DevOps Server 中更新扩展。
- 运行管道。它以同样的异常失败,就好像我没有回滚一样。我查看了 agent taks 文件夹,发现带有“3rdPartyDep”库的 node_modules 指向 3.0.0,这是错误的,因为我回滚了版本。
- 我打开生成的 .vsix 存档并检查里面的 node_modules 是否包含正确的 2.0.0 版本,所以我这边的打包或构建没有问题。
- 我得出的结论是,Azure DevOps 在某处存储了扩展的缓存版本,其中 node_modules 包括错误版本的“3rdPartyDep”。我在互联网上搜索该缓存文件夹以找出它的位置,我还使用搜索工具搜索我所有的机器,包括文件中的单词。无处可寻。我的机器上没有这样的 node_modules 包含 3.0.0 版本的位置。它可能存储在一些加密的数据库中?
- 我完全卸载扩展,然后重新安装。我看到 Azure DevOps 有扩展的历史记录,但缓存没有被清除。任何管道都会失败,即使我的 .vsix 不包含此依赖项。
我卡住了。
问题:
- 扩展实际缓存在 Azure DevOps Server 中的什么地方?
- 为什么更新、卸载和安装都不能解决问题?
- 有什么办法可以解决这个问题吗?我能做什么?我不想完全重新安装服务器。此外,这引起了人们对如何管理和缓存 node_modules 以及客户端和云中发生的情况的担忧。
您可以尝试以下项目:
尝试清理浏览器缓存,检查是否在task.json.
中增加了版本号
尝试执行删除任务--保存定义--重新添加任务过程。
删除Azure DevOps Server缓存,可以在这个link.
从 CollectionSettings 中卸载扩展,从本地管理扩展中删除扩展。然后再次上传扩展并安装在集合中。
一般:我开发了一个带有任务和管道装饰器的 Azure DevOps 扩展。在本地 Azure DevOps Server 实例上进行测试。通过管理本地硬盘驱动器的扩展程序加载的扩展程序。假设我第一次安装了版本为 1.0.0 的扩展和一个版本为 2.0.0 的 node_modules 依赖项“3rdPartyDep”,它具有带有漏洞的传递依赖项。
场景:
- 升级“3rdPartyDep”至3.0.0版本,修复漏洞。构建我的扩展的新版本,比如 1.0.1。创建 .vsix,更新 Azure DevOps 服务器中的扩展。
- 运行 一个管道,它失败了,因为我没有检查“3rdPartyDep”更改并且有重大更改并且扩展失败 运行。
- 将“3rdPartyDep”库回滚到 2.0.0,因为我现在没有时间检查那里有什么问题,因为我还有其他要调试和实施的东西,重新打包扩展,将版本增加到 1.0.2 , 在 Azure DevOps Server 中更新扩展。
- 运行管道。它以同样的异常失败,就好像我没有回滚一样。我查看了 agent taks 文件夹,发现带有“3rdPartyDep”库的 node_modules 指向 3.0.0,这是错误的,因为我回滚了版本。
- 我打开生成的 .vsix 存档并检查里面的 node_modules 是否包含正确的 2.0.0 版本,所以我这边的打包或构建没有问题。
- 我得出的结论是,Azure DevOps 在某处存储了扩展的缓存版本,其中 node_modules 包括错误版本的“3rdPartyDep”。我在互联网上搜索该缓存文件夹以找出它的位置,我还使用搜索工具搜索我所有的机器,包括文件中的单词。无处可寻。我的机器上没有这样的 node_modules 包含 3.0.0 版本的位置。它可能存储在一些加密的数据库中?
- 我完全卸载扩展,然后重新安装。我看到 Azure DevOps 有扩展的历史记录,但缓存没有被清除。任何管道都会失败,即使我的 .vsix 不包含此依赖项。
我卡住了。
问题:
- 扩展实际缓存在 Azure DevOps Server 中的什么地方?
- 为什么更新、卸载和安装都不能解决问题?
- 有什么办法可以解决这个问题吗?我能做什么?我不想完全重新安装服务器。此外,这引起了人们对如何管理和缓存 node_modules 以及客户端和云中发生的情况的担忧。
您可以尝试以下项目:
尝试清理浏览器缓存,检查是否在task.json.
中增加了版本号尝试执行删除任务--保存定义--重新添加任务过程。
删除Azure DevOps Server缓存,可以在这个link.
从 CollectionSettings 中卸载扩展,从本地管理扩展中删除扩展。然后再次上传扩展并安装在集合中。