【问题标题】:Need to export classes for NPM package需要为 NPM 包导出类
【发布时间】:2020-01-16 05:26:56
【问题描述】:

我正在构建一个 NPM 包,并且正在寻找导出我的类的最佳方式。

现在,我正在使用这个:

import {Swan} from './Swan';
import {Route, Router} from './Router';
import {View, TemplateView, IView} from './views';

export { Route, Router, Swan, View, TemplateView, IView };

这行得通。当然,唯一的事情是,每次我添加一个新类时,我都必须更新导出语句。

有没有办法导出我指定的所有文件中的所有类,而不必在此处更新导出语句?

【问题讨论】:

    标签: node.js typescript node-modules


    【解决方案1】:

    有没有办法导出我指定的所有文件中的所有类,而不必在此处更新导出语句?

    在 Javascript 中没有自动“导出所有内容”或导出所有类。


    但是,您可以更改定义类的方式,使它们成为内部对象的一部分,而您只需导出该对象。

     const myExports = {
          TemplateView: class TemplateView {
              ...
          },
          iView: class iView {
             ...
          }
    
     };
    
     export default myExports;
    

    当您向此结构添加新类时,它会自动成为导出的一部分。


    另一方面,我个人认为,当您向要导出的模块添加新项目时,维护导出列表有什么大不了的。导出应该是一个经过深思熟虑的事物列表,其中仅包含需要导出的项目,并且不包含作为实现的一部分在本地使用的其他功能。它可以成为一个深思熟虑的列表的唯一方法是它不是自动的。

    【讨论】:

    • 感谢您的建议。现在我有多个导出的文件。看起来我必须对所有无法默认导出的项目继续做同样的事情,对吧?
    • @LeeLoftiss - 是的。当您将新项目添加到要导出的模块时,我个人认为维护导出列表有什么大不了的。导出应该是一个经过深思熟虑的事物列表,其中仅包含需要导出的项目,并且不包含作为实现的一部分在本地使用的其他功能。它可以成为一个深思熟虑的列表的唯一方法是它不是自动的。
    猜你喜欢
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 2017-12-25
    • 1970-01-01
    • 2018-10-04
    • 2018-04-23
    相关资源
    最近更新 更多