首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以覆盖url npm从其中提取一个包吗?

我可以覆盖url npm从其中提取一个包吗?
EN

Stack Overflow用户
提问于 2016-12-08 12:41:24
回答 2查看 1.5K关注 0票数 0

我有一个遗留项目,它依赖于特定版本的npm包,该软件包通过依赖链依赖于特定npm包的幻影at,其二进制文件已不在注册位置在线。这破坏了项目的构建。

更新包版本不是一个选项。

我可以通过手动获取所需版本的幻影并将其放到我的系统下载文件夹中来欺骗npm,但这是一个解决办法,我想要一个更干净的修复,最好是配置脚本中的一些东西。

我是否可以在我的项目的package.json或.npmrc文件中强制npm为包@某些版本使用另一个url,每次为该项目运行"npm“时?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-11 14:21:07

我发现这是可能的使用npm-收缩包装(https://docs.npmjs.com/files/package-locks).基本上,除了package.json之外,您还可以向项目中添加一个npm缩缩包装. your文件。在收缩包文件中,您可以覆盖package.json中列出的任何特定包--在该包的依赖链中的任何位置,您都可以指定一个从该包获取依赖包的URL。

代码语言:javascript
复制
{
  "name": "MyProject",
  "dependencies": {
    "A" : {
      "version" :"1.2.1",
      "dependencies": {
      "B": {
        "version": "https://myBForkUrl.git"
      }
    }
  }
}

如果MyProject依赖于包A (这反过来依赖于B ),但是B没有维护,并且有一个关键的bug,我可以滚动自己的B分支,修复错误并将其保存在https://myBForkUrl.git上,而无需分叉A。根据NPM的文档,这种覆盖看起来可以在必要时嵌套得很深。

票数 0
EN

Stack Overflow用户

发布于 2016-12-08 12:50:04

一个可能的解决方案是将包上传到github,并按照NPM文档中的https://docs.npmjs.com/files/package.json#urls-as-dependencies进行处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41039789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档