【问题标题】:Disable or remove some function in npm package禁用或删除 npm 包中的某些功能
【发布时间】:2021-01-16 19:23:42
【问题描述】:

我要使用一个 npm 库,只需要一些函数,如何禁用或删除库中未使用的函数?

我还是想用这个库,但是很多库里面有读写功能,但是我想开启读功能,关闭写功能,这样开发者就没有机会使用写功能了

【问题讨论】:

  • npm uninstall 'name package+version'
  • 我的意思是我还想用这个库,但是很多库里有读写功能,但是我想启用读取功能和禁用写入功能,这样开发人员就没有机会了使用 write 函数。

标签: node.js typescript npm package


【解决方案1】:

假设包导出了一个类PackageFoo,该类具有getBarsetBar 等方法,但您不希望您的代码的用户能够调用setBar。与其在代码库中传递PackageFoo 对象,不如将其包装在自己的类RestrictedFoo 中,该类只有getBar 方法。在内部,您的 RestrictedFoo 类存储了一个私有的 PackageFoo 实例,您可以将所有逻辑委托给它。

export class RestrictedFoo {

    private readonly _internal: PackageFoo;

    constructor(props) {
         this._internal = new PackageFoo(props);
    }

    getBar(): BarType {
        return this._internal.getBar();
    }
}

如果我们处理的是类属性而不是方法,这种方法仍然有效,但您可以在类中使用 getterssetters

    get bar(): FooType {
        return this._internal.bar;
    }

【讨论】:

    猜你喜欢
    • 2015-02-06
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    相关资源
    最近更新 更多