天天看點

關于module require的學習

// Jerry 2017-12-9 11:39AM we can currently treat module as a keyword in nodejs environment

var config = require(’./config’);

/*

console.log('module.id: ', module.id);

console.log('module.exports: ', module.exports);

console.log('module.parent: ', module.parent);

console.log('module.filename: ', module.filename);

console.log('module.loaded: ', module.loaded);

console.log('module.children: ', module.children);

console.log('module.paths: ', module.paths);*/

console.log(config.debug);

require 并不是全局性指令,而是每個子產品提供的一個内部方法,也就是說,

隻有在子產品内部才能使用 require 指令(唯一的例外是 REPL 環境)。

另外,require 其實内部調用 Module._load 方法。

子產品的加載實質上就是,注入exports、require、module三個全局變量,

然後執行子產品的源碼,然後将子產品的 exports 變量的值輸出。

output:

module.id: .

module.exports: {}

module.parent: null

module.filename: C:\Code\git\wechat\app\a.js

module.loaded: false

module.children: []

module.paths: [ ‘C:\Code\git\wechat\app\node_modules’,

‘C:\Code\git\wechat\node_modules’,

‘C:\Code\git\node_modules’,

‘C:\Code\node_modules’,

‘C:\node_modules’ ]

*/

繼續閱讀