Node.js JavaScript中模块和库的区别

Node.js JavaScript中模块和库的区别,node.js,javascript,Node.js,Javascript,我正在学习ES6模块。但我对模块和库之间的区别感到困惑 以及模块和库与node.js包的不同之处。a是软件的一个单元。这是指源代码的自包含部分、源代码所在的文件或代码声明(或执行时生成)的模块对象(数据结构)。 通常情况下,它们之间存在1:1:1的关系,这是一种很好的做法。在同一个源文件1中几乎找不到多个模块。ES6实现将通过将单个文件作为单个模块来实现这一点,这些模块可以通过其唯一的名称导入,就像以前处理或模块一样。 除了ES6模块之外,还有模块模式,它使用IIFE封装代码并创建单例对象。有关

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

以及模块和库与node.js包的不同之处。

a是软件的一个单元。这是指源代码的自包含部分、源代码所在的文件或代码声明(或执行时生成)的模块对象(数据结构)。
通常情况下,它们之间存在1:1:1的关系,这是一种很好的做法。在同一个源文件1中几乎找不到多个模块。ES6实现将通过将单个文件作为单个模块来实现这一点,这些模块可以通过其唯一的名称导入,就像以前处理或模块一样。
除了ES6模块之外,还有模块模式,它使用IIFE封装代码并创建单例对象。有关详细信息,请参阅或 由于模块化非常重要,有很多方法可以实现模块加载器,每种方法都有自己的语法和微妙之处,通常是更大框架的一部分。有关进一步讨论,请参阅

A是一个有用的东西的集合,它们属于一个整体并作为一个整体分发。这可能不仅仅包含纯源代码或单一语言,但在我们谈论“javascript库”时通常不是这样。由一组js函数组成的库通常将它们作为模块导出


1:除非它们被缩小为一个脚本。此外,HTML5可能会引入声明内嵌ES6模块的方法。

这是一个多么好的问题。任何一种技术术语的问题在于,每个人对不同的事物都使用相似的术语。但我要说的是,“库”只是一些有用的JavaScript函数的旧集合,可以使编写常见任务变得更容易。而“模块”是以某种标准方式封装的库,例如CommonJS模块、异步模块定义(AMD)或ECMAScript 6模块(最终应成为通用标准)。我没有足够的信心来写这篇文章作为一个正确的答案,但我期待着别人说的话。这是一篇很好的文章,从总体上解释了两者之间的区别。