如何覆盖 NPM 包中声明的函数?
新手问题,我正在使用 npm 包,我想修改原始函数,但尝试运气不佳。我试图修改的功能:
AnimationItem.prototype.getMarkerData = (markerName: string) => {
let marker;
for (let i = 0; i < this.markers.length; i += 1) {
marker = this.markers[i];
if (marker.payload && marker.payload.name === markerName) {
return marker;
}
}
return null;
};
我想替换这个条件:
if (marker.payload && marker.payload.name === markerName)
用这个:
if (marker.payload && marker.payload.name.cm === markerName)
到目前为止我尝试过的事情:
- 使用
patch-package
:我遇到了一些类似于 这个但到目前为止还没有得到任何修复。
我正在尝试在我的 React 组件中本地覆盖原型(直到修复此问题的 PR 合并到源代码中),但我不确定应该如何处理它,任何建议将不胜感激!谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试将包移动到计算机中的其他目录(或 git 克隆它),然后在其中进行更改,更改
package.json
文件中的名称/版本,然后 将其链接与npm链接
。链接后,您可以返回项目并使用新名称/版本安装包(npm install packagename
,npm install packagename@version
)。或者您可以分叉它,进行更改,然后从 git URL 安装依赖项。以下是如何从 git URL 安装软件包的示例。
You can try moving the package to a different directory (or git cloning it) in your computer, then make your changes inside, change it's name/version inside the
package.json
file then link it withnpm link
. After linking it, you can go back to your project and install the package with new name/version (npm install packagename
,npm install packagename@version
).Or you can fork it, make your changes then install the dependency from a git URL. Here is an example of how you can install a package from a git URL.