在node.js中,是否可以在不需要networking模块的情况下要求('net')?

在“node_modules”文件夹中,我没有看到名为“net”的文件夹,但是很多代码使用require('net') 。 我什至在“node_module”内的每个文件夹中search“networking”,但没有任何。

net是NodeJS的内置包,不需要明确安装。 当您使用require('package') ,将首先在内置包中search包。

要使用一些其他不包含NodeJS的包,也没有安装,不能使用。

采取从Ben Nadel的博客

  1. 首先,Node.js查看给定模块是否是核心模块 – Node.js带有许多直接编译成可执行二进制文件(例如http,fs,sys,events,path等)的模块。 这些核心模块将始终优先于加载algorithm。
  2. 如果给定模块不是核心模块 ,则Node.js将开始search名为“node_modules”的目录 。 它将从当前目录(相对于Node中正在执行的Javascript文件)开始,然后在文件夹层次结构中查找,检查每个级别的node_modules文件夹。
  3. 一旦Node.jsfind了node_modules文件夹,它就会尝试以(.js)Javascript文件或命名的子目录的forms加载给定的模块 。 而且,如果它find了命名的子目录,它将尝试以各种方式加载文件。
  4. 如果仍然无法以这种以目录forms存在的方式find文件,Node.js将继续查看“require.paths”数组中列出的目录path 。 此数组中的path值默认为部分由环境variablesNODE_PATH定义的path; 但是,它们可以在Node.js应用程序中以编程方式更新。