col*_*n8r 5 node.js npm leaflet
TL; DR:如何将我的程序包的依赖项之一更改为其他程序包?例如,我想将Package A的依赖关系Package B更改为Package C,但仅对于Package A(即,我不想在上游更改Package A的依赖关系)。
我正在为Leaflet编写插件。Leaflet可作为NPM软件包使用(完成后,我的插件也将提供)。我的插件扩展了另一个插件Esri-Leaflet,它具有Leaflet作为依赖项。
我的插件使用Mocha / Chai / Sinon作为我的代码的测试框架。在开发过程中以及作为CI的一部分,我都使用NPM脚本运行这些测试。
当我运行依赖Leaflet的测试时,我会遇到很多错误,因为不幸的是,Leaflet依赖于无头节点环境(例如window
)中不可用的全局变量。幸运的是,有人向我建议了一个名为leaflet-headless的替代软件包,它可以解决这些问题(看看您是否好奇,这很有趣)。
有没有一种方法可以让NPM在解决Esri-Leaflet的依赖项时使用Leaflet无叶的intead?也就是说,我要么想删除下游的Leaflet依赖项(因为我的项目已经依赖无叶的),要么将其更改为无叶的。
我看过了npm shrinkwrap
,但似乎只能指定版本号,而不能更改实际的软件包依赖项。
如果NPM无法执行我要的功能,您可以推荐替代解决方案吗?我已经在探索解决对上游Leaflet依赖的问题,以消除对无叶传单的需求。
JRJ*_*man -1
这可能有效也可能无效,具体取决于您的 Node 版本,但我能够使用同名包在 Node 8 上完成类似的操作。
如果您需要使包同名,您可以分叉该项目,并将分叉重命名为相同的名称(在本例中为leaflet-headless
-> Leaflet
)。
获得 fork 后,在 package.json 中写入以下内容
dependencies: {
"Leaflet": "username/Leaflet"
}
Run Code Online (Sandbox Code Playgroud)
如果您有 package-lock.json,您应该看到Esri-Leaflet
指向您的 github,而不是原始Leaflet
项目作为依赖项。
归档时间: |
|
查看次数: |
614 次 |
最近记录: |