【问题标题】:Hide specific exports in the npm package隐藏 npm 包中的特定导出
【发布时间】:2022-01-30 02:20:58
【问题描述】:

我是创建 npm 包的新手。 我不希望用户能够从我的包中导入所有内容,例如 Utils 类。

export class Utils implements IUtils {
  // ......
}

如何避免?

【问题讨论】:

    标签: javascript node.js npm


    【解决方案1】:

    您可以在package.json 中指定exports 键。设置后,只能从模块访问指定的路径。

    文档:https://nodejs.org/api/packages.html#exports

    我通常这样做的方式是创建一个index.jsindex.ts 并将其添加到exports。然后,我想公开公开的任何内容,我都会通过索引文件导出。

    例如:

    // index.ts
    export { MyPublicClass } from './MyPublicClass'
    

    【讨论】:

    • 附加问题。如果我想从 npm 模块依赖项中重新导出一个模块,那么用户不必将此包安装到其依赖项中? export * from 'module'?
    • 抱歉耽搁了,但总的来说这是相当糟糕的做法。如果必须,最好将其导出为对象。比如:import * as myLib from 'mylib'; export { myLib }
    猜你喜欢
    • 2012-03-01
    • 2023-01-12
    • 1970-01-01
    • 2018-03-29
    • 2016-10-16
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    相关资源
    最近更新 更多