azure - 将具有依赖关系的 npm 包提升到发布视图
问题描述
想象一下具有两个视图的 npm 包的Azure DevOps源 (MyFeed):本地和发布。这个提要有一个上游源https://registry.npmjs.org/。两个包(@scope/a 和@scope/b)已经发布并且它们在本地视图中。它们都直接依赖于npmjs的prop-types包:
"dependencies": {
"prop-types": "^15.7.2"
},
"peerDependencies": {
"react": "^16.12.0",
...
}
包“a”和“b”被安装,构建(Storybook,ie)并部署到一些测试环境以供审查。在安装包期间,它们的依赖属性类型会从上游保存到提要的本地视图。
假设包 A 通过审查并被提升到 @Release 视图。然后我尝试将它安装到连接到 MyFeed@Release 的主项目中。但安装失败,因为 prop-types 仍在本地视图中:
$ npm i @scope/a
npm ERR! code E404
npm ERR! 404 Not Found - GET https://*/*/_packaging/MyFeed%40Release/npm/registry/prop-types - NotFound
npm ERR! 404
npm ERR! 404 'prop-types@^15.7.2' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 It was specified as a dependency of '@scope/a'
开始使用包“a”的唯一方法是将其所有依赖项提升到同一视图(之后包“b”仍然正确安装)。但它不应该自动完成吗?或者是否有使用未升级(本地)上游包的解决方法?来自 npmjs 的公共包可能有很多依赖项,这些依赖项很难手动管理。
也许我应该创建另一个提要,连接到 npmjs 并在 MyFeed 的“前面”使用它,如下所示: npmjs <- MyUpstreamFeed(仅限本地视图)<- MyFeed(不直接连接到 npmjs)。
解决方案
推荐阅读
- html - CSS设计系统
- linux - pthread_cond_wait 一直以神秘的“futex 工具返回意外错误代码”消息而崩溃
- powershell - Powershell 为邮箱返回 MFA 状态
- django - Wagtail 导入需要 publish() 来显示图像
- r - 数字向量的不透明度
- karate - 如何在空手道中使用 eval 来处理 if 和 else 情况?
- java - Eclipse - 包含选择而不是替换
- opengl - 在计算着色器中更新 SSBO
- jquery - AWS Lambda 上传文件到 s3
- java - 无法让 JLabel 从头开始切换 GUI