node模块包装时传递五个参数

2019-07-30355次阅读node

node在解析每个模块(js 文件)时,会对每个模块进行包装,就是在代码外面加一个闭包,并且向里传递五个参数,这样就保证了每个模块之间的独立,就像下面这样:

(function(exports, require, module, __filename, __dirname) {
    // module: 表示当前模块
    // __filename: 当前模块的带有完整绝对路径的文件名
    // __dirname: 当前模块的完整绝对路径
    module.exports = exports = this = {};
    // 我们的代码就在这里...
    return module.exports;
})()

想想我们平时是不是常在 webpack 里面看到 __dirname 这种东西,我们既没有引入也没有声明它,为什么能够直接使用呢,就是因为这个原因。

上一篇: CommonJs规范中require导入带路径和不带路径的区别  下一篇: 写React/Vue项目时为什么要在列表组件中写key,其作用是什么?  

node模块包装时传递五个参数相关文章