如何模块化和结合我的图书馆?

我是新来的模块JS,但我喜欢这个概念。 我想写我的小图书馆来testing一下。 这是我想要的样子:

  • 它有5个方法
  • 你可以下载一个完整的库来导出一个全局variables – 青蛙。 这是一个没有任何东西的模块,但它将5个独立的方法作为依赖项下载

  • 您可以像正常一样访问Frog库的所有方法,例如Frog.get(),Frog.animate()等。

我知道如何写这样的东西,但我可以像这样模块化?

  • 您可以下载5个模块中的4个
  • 第一个下载的模块名为Frog.animate创build一个空的青蛙对象,并添加.animate方法
  • 第二个叫做.css的下载模块将带有.animate的前一个Frog对象,并将.css添加到该对象
  • 等等…基本上只是将方法添加到一个对象

是这样的可能吗? 如何? 我知道Lodash是非常模块化,你可以cherrypick方法。 他们只是单一的function,如forEach()而不是_.forEach()或是有什么不同?

我应该如何模块化所有这些青蛙方法? 将它们导出为独立的单一function?

var animate = require("./Frog.animate"); animate(something); 

你可以导入任何你输出的东西。

frog.js

 const a = () => ...; function b() { ... } function c() { ... } class D { ... } module.exports = { a, b, c, D }; 

index.js

 import { a, D } from './frog' 

使用上述,你也可以做到相反。 在不同的文件中创build子function,让你的frog库导入它们,并作为一个模块导出。