Node.js中的模块和包之间的区别?
我是Node.js的新手。Node.js中的“包”和“模块”有什么区别?每个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
包
,应该有一个包.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')