如何在node.js中将文件定义为模块

Jon*_*Ong 5 node.js

代替require相对的代码,即以./或开始..,我想定义一个"全局"模块.例如,采用以下包结构:

/src
  /index.js
  /a.js
  /b.js
/lib
  /index.js
  ...
Run Code Online (Sandbox Code Playgroud)

在进入src/a.jssrc/b.js要求时lib,我require('../lib')每次都要做.当你开始筑巢更多,你将不得不手动解决这很烦人../lib../../lib../../../lib.

我希望能够做到require('lib').我可以这样做吗?或者我应该使用全局变量?

Fir*_*ous 0

将模块放在 node_modules 中不需要包含路径或相对路径

编辑:

如果将名为 package.json 的文件放入模块目录中,Node 将尝试解析该文件并查找并使用 main 属性作为入口点的相对路径。例如,如果您的

./myModuleDir/package.json

文件如下所示,Node 将尝试使用路径加载文件

./myModuleDir/lib/myModule.js

:

{
"name" : "myModule",
"main" : "./lib/myModule.js"
}
Run Code Online (Sandbox Code Playgroud)

如果该文件夹不包含名为 package.json 的包定义文件,则包入口点将采用默认值 index.js,在这种情况下,Node 将查找路径 ./myModuleDir/index 下的文件。 js。