javascript - 如何模块化和组合我的库?

标签 javascript node.js module lodash

我是模块化 JS 的新手,但我喜欢这个概念。我想编写我的小库来测试一下。这就是我想要的样子:

  • 它有 5 种方法
  • 您可以下载导出全局变量的完整库 - Frog。它是一个模块,它自己没有任何东西,但它下载它的 5 个独立方法作为依赖项

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

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

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

这样的事情可能吗?如何?我知道 Lodash 非常模块化,你可以挑选方法。它们只是像 forEach() 而不是 _.forEach() 这样的单一函数还是有什么不同?

我应该如何模块化所有这些 Frog 方法?像这样将它们导出为独立的单个函数吗?

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'

使用上面的方法,你也可以反过来做。在不同的文件中创建子功能,并让您的 frog 库导入它们并将其全部导出为模块。

关于javascript - 如何模块化和组合我的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393033/

相关文章:

javascript - Gulp 根据对象数组中的键运行任务

javascript - crypto-js 函数返回什么样的数据?

javascript - 通过 npm 安装的包但它没有显示在文件夹中

javascript - SailsJS : Where to define db connection to not supported db type (orientdb)? 自定义中间件?

javascript - 在 javascript 中创建一个对象,该对象具有带有可选名称/值对的 'init' 方法

node.js - 我可以自定义 Stormpath 登录屏幕的外观吗?

javascript - 为每个数组元素调用 custom_function

javascript - 为什么 Angular 2 是用 CommonJs 模块格式而不是 AMD 编写的?

c# - ASP.NET 模块依赖注入(inject)

javascript - 将数据从模型传递到 Node js中的路由器