nodejs的require模块(文件模块/核心模块)及路径介绍_基础知识
程序员文章站
2022-03-25 15:25:48
...
在nodejs中,模块大概可以分为核心模块和文件模块。
核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net'))。
文件模块,则是指js文件、json文件或者是.node文件。在引用文件模块的时候后要加上文件的路径:/.../.../xxx.js表示绝对路径、./xxx.js表示相对路径(同一文件夹下的xxx.js),../表示上一级目录。如果既不加/.../、../又不加./的话,则该模块要么是核心模块,要么是从一个node_modules文件夹加载。
对于加载模块时既没指出./ ../ /.../时,加载模块的搜索路径。如果'/home/ry/projects/foo.js' 中的文件调用了 require('bar.js') ,node将在下面的位置进行搜索:
/home/ry/projects/node_modules/bar.js
/home/ry/node_modules/bar.js
/home/node_modules/bar.js
/node_modules/bar.js
文件夹作为模块:
首先在文件夹的根下建立package.json文件,它标识了一个主模块。一个package.json中的内容可能如下:
{ "name" : "some-library", "main" : "./lib/some-library.js" }
如果这是在一个文件夹./some-library下,那么require('./some-library')时将试图加载./some-library/lib/some-library.js如果在这个目录下没有package.json文件,node将试图从这个目录下加载index.js或index.node文件。例如,如果上面没有package.json文件,那么require('./some-library')时,将试图加载下面的文件:
./some-library/index.js
./some-library/index.node
核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net'))。
文件模块,则是指js文件、json文件或者是.node文件。在引用文件模块的时候后要加上文件的路径:/.../.../xxx.js表示绝对路径、./xxx.js表示相对路径(同一文件夹下的xxx.js),../表示上一级目录。如果既不加/.../、../又不加./的话,则该模块要么是核心模块,要么是从一个node_modules文件夹加载。
对于加载模块时既没指出./ ../ /.../时,加载模块的搜索路径。如果'/home/ry/projects/foo.js' 中的文件调用了 require('bar.js') ,node将在下面的位置进行搜索:
复制代码 代码如下:
/home/ry/projects/node_modules/bar.js
/home/ry/node_modules/bar.js
/home/node_modules/bar.js
/node_modules/bar.js
文件夹作为模块:
首先在文件夹的根下建立package.json文件,它标识了一个主模块。一个package.json中的内容可能如下:
复制代码 代码如下:
{ "name" : "some-library", "main" : "./lib/some-library.js" }
如果这是在一个文件夹./some-library下,那么require('./some-library')时将试图加载./some-library/lib/some-library.js如果在这个目录下没有package.json文件,node将试图从这个目录下加载index.js或index.node文件。例如,如果上面没有package.json文件,那么require('./some-library')时,将试图加载下面的文件:
复制代码 代码如下:
./some-library/index.js
./some-library/index.node
推荐阅读
-
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
-
Nodejs读取文件时相对路径的正确写法(使用fs模块)
-
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
-
node.js当中模块化开发的基本流程及require加载文件的规则
-
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
-
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法_jquery
-
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
-
Javascript模块化编程(三)require.js的用法及功能介绍_基础知识
-
关于nodeJS之路径PATH模块的详细介绍
-
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法_jquery