因为webpack是提供打包js工具,同时她也是基于nodejs开发的,所有在webpack里面获取路径的方式,完全跟node一样,目前node提供path模块提供路径服务:我们主要从两个方面来分析路径,首先是怎么获取到当前文件路径或者当前模块的路径,然后再基于当前获得的路径用path模块根据业务做必要的操作。
深入分析一下原理:
第一步:node层面对于模块的封装.http://nodejs.cn/api/modules.html#modules_the_module_scope
在执行模块代码之前,Node.js 将使用如下所示的函数封装器对其进行封装:
(function(exports, require, module, __filename, __dirname) {
// 模块代码实际存在于此处
});
通过这样做,Node.js 实现了以下几点:
- 它将顶层变量(用
var
、const
或let
定义)保持在模块而不是全局对象的范围内。 - 它有助于提供一些实际特定于模块的全局变量,例如:
module
和exports
对象,实现者可以用来从模块中导出值。- 便利变量
__filename
和__dirname
,包含模块的绝对文件名和目录路径。
所以在模块作用