Node.js中的模块和包之间的区别?

Node.js中的模块和包之间的区别?,node.js,package,Node.js,Package,我是Node.js的新手。Node.js中的“包”和“模块”有什么区别?每个Node.js应用程序都是一个包,应该有一个包.json文件。这些应用程序充当中间件(或库的等价物),并安装在其他应用程序中,这些应用程序是模块 简而言之,所有模块都是包,但并非所有包都要用作模块 如果模块在package.json文件中被列为依赖项,将被安装到node\u Modules文件夹中,但是npm通过其package.json文件递归,以添加它们所依赖的模块。是node.js的库。请参阅API的以下摘录: N

我是Node.js的新手。Node.js中的“包”和“模块”有什么区别?

每个Node.js应用程序都是一个
,应该有一个
包.json
文件。这些应用程序充当中间件(或库的等价物),并安装在其他应用程序中,这些应用程序是
模块

简而言之,所有
模块
都是
,但并非所有
都要用作
模块

如果模块在
package.json
文件中被列为
依赖项
,将被安装到
node\u Modules
文件夹中,但是
npm
通过其
package.json
文件递归,以添加它们所依赖的
模块。

是node.js的库。请参阅API的以下摘录:

Node.js有一个简单的模块加载系统。在Node.js中,文件和模块 是一对一的通信

模块示例:

  • Circle.js
  • 矩形.js
  • Square.js
包是一个或多个模块(库)组合(或打包)在一起。其他软件包或您自己的项目通常会使用这些。Node.js使用的是一个,您可以在其中查找和安装数千个软件包

包的示例:

Shapes             <- Package name
  - Circle.js      <-
  - Rectangle.js   <- Modules that belong to the Shapes package
  - Square.js      <-

Shapes您所能
require()
的一切都是一个模块。在世界上的大多数情况下,每个模块只有一个文件

一个包可以包含多个模块,但您通常会加载入口点(
main
),如果未提供
main
属性,则在或其index.js中指定入口点,例如:
require('express')

但是,如果您知道位置,也可以要求另一个文件(不是主文件)。例如,
require(“express/lib/application”)
(在Node.js中,可以省略扩展名:.js

如果在的
dependencies
属性中列出了其他包中的模块,则包可以访问这些模块

实际上,npm将所有包安装到节点单元模块中,这很容易混淆,因为它应该是节点单元包


A模块是一个具有合理功能的单一JavaScript文件

是一个目录,其中包含一个或多个模块,以及一个package.json文件,其中包含有关包的元数据

一个包可以非常简单,例如,下划线只有一个JavaScript文件(我们看到它的两个版本,常规和小型版本以及package.json)

而像Express这样更复杂的包在根目录中有一个JavaScript文件,但是在它的子目录中有更多的JavaScript文件,在它的子目录中有更多的JavaScript文件

open@open-PC MINGW64 ~/Desktop/module-package-demo/node_modules/express
$ dir
History.md  index.js  lib  LICENSE  package.json  Readme.md
现在,人们通常将包称为模块。

我搜索并发现:

在Node.js模块系统中,每个文件都被视为一个单独的模块

npm有一些官方定义

包是由package.json文件描述的文件或目录。
模块是node_modules目录中可由node.js require()函数加载的任何文件或目录。
注意:由于模块不需要有package.json文件,因此并非所有模块都是包。只有具有package.json文件的模块也是包

发件人:

关于包裹 包是由包.json描述的文件或目录 文件一个包必须包含一个package.json文件才能被删除 发布到npm注册表

[……]

关于模块
模块是节点中的任何文件或目录 Node.jsrequire()函数可以加载的目录

要由Node.jsrequire()函数加载,模块必须是一个 其中:

  • 带有package.json文件的文件夹,其中包含“main”字段
  • 包含index.js文件的文件夹
  • JavaScript文件

注意:自模块 不需要有包.json文件,并非所有模块都需要 包装。只有具有package.json文件的模块也可以使用 包裹


在节点程序的上下文中,模块也是 从文件加载的东西。例如,在下面的 节目:

var req=require('request')

我们可以说“变量req 指的是请求模块”


软件包

包是由package.json文件描述的文件或目录。 包必须包含package.json文件才能发布到npm注册表

模块

模块是node_modules目录中可由node.js require()函数加载的任何文件或目录

要由Node.js require()函数加载,模块必须是以下模块之一:

  • 包含包含“main”字段的package.json文件的文件夹

  • 包含index.js文件的文件夹。JavaScript文件

  • 模块是节点\模块目录中的任何文件或目录 可以通过Node.js require()函数加载

在节点程序的上下文中,模块也是从文件加载的对象。例如,在以下程序中:

var req = require('request')
我们可以说“变量req指的是请求模块”。
var req = require('request')