JavaScript中模块和库之间的区别

我正在学习ES6模块。 但是我对模块和库之间的区别感到困惑。

还有模块和库如何不同于node.js包。

一个模块是一个软件单元。 根据上下文的不同,它指向源代码的独立部分,前者所在的文件,或者所述代码声明(或执行时生成)的模块对象(数据结构)。
通常情况下,它们之间有1:1:1的关系,这是一个很好的做法。 你很less在同一个源文件中find多个模块1 。 ES6实现将通过将单个文件作为单个模块来执行此操作,可以通过它们的唯一名称导入 – 就像以前在CommonJS或AMD模块中一样。
在ES6模块旁边,还有模块模式 ,它使用IIFE封装代码并创build单例对象。 查看调用的JavaScript模式是什么以及为什么使用它? , 这里还是JSdevise模式书的细节。
由于模块化非常重要,所以在实现模块加载器方面有很多方法,每个方法都有自己的语法和细节,常常是更大框架的一部分。 看到这篇文章进一步讨论。

图书馆是一个有用的东西集合在一起,作为一个整体分布。 这可能不仅仅包含纯粹的源代码或者多于一种语言,但是当我们谈论“JavaScript库”时通常不会。 一个由一组js函数组成的库通常将它们作为一个模块输出。

1:除了被缩小到一个脚本之外。 而且,HTML5可能会引入声明内联ES6模块的方法。