本章节涵盖了使用 webpack 编译的代码中所有的变量。模块将通过 module
和其他变量,来访问编译过程中的某些数据。
module.loaded
(NodeJS)
false
表示该模块正在执行, true
表示同步执行已经完成。
module.hot
(webpack 特有变量)
表示 模块热替换(Hot Module Replacement) 是否启用,并给进程提供一个接口。详细说明请查看 模块热替换 API 页面
module.id
(CommonJS)
当前模块的 ID。
module.id === require.resolve('./file.js');
module.exports
(CommonJS)
调用者通过 require
对模块进行调用时返回的值(默认为一个新对象)。
module.exports = function doSomething() {
// 做一些操作……
};
无法在异步函数中访问该变量
exports
(CommonJS)
该变量默认值为 module.exports
(即一个对象)。 如果 module.exports
被重写的话, exports
不再会被导出。
exports.someValue = 42;
exports.anObject = {
x: 123
};
exports.aFunction = function doSomething() {
// Do something
};
global
(NodeJS)
process
(NodeJS)
__dirname
(NodeJS)
取决于 node.__dirname
配置选项:
false
: Not definedmock
: equal "/"true
: Node.js __dirname如果在一个被 Parser 解析的表达式内部使用,则配置选项会被当作 true
处理。
__filename
(NodeJS)
取决于 node.__filename
配置选项:
false
: Not definedmock
: equal "/index.js"true
: Node.js __filename如果在一个被 Parser 解析的表达式内部使用,则配置选项会被当作 true
处理。
__resourceQuery
(webpack 特有变量)
当前模块的资源查询(resource query) 。如果进行了如下的 reqiure
调用,那么查询字符串(query string)在file.js
中可访问。
require('file.js?test');
file.js
__resourceQuery === '?test';
__webpack_public_path__
(webpack 特有变量)
等同于 output.publicPath
配置选项.
__webpack_require__
(webpack 特有变量)
原始 require 函数。这个表达式不会被解析器解析为依赖。
__webpack_chunk_load__
(webpack 特有变量)
内部 chunk 载入函数,有两个输入参数:
chunkId
需要载入的 chunk id。callback(require)
chunk 载入后调用的回调函数。__webpack_modules__
(webpack 特有变量)
访问所有模块的内部对象。
__webpack_hash__
(webpack 特有变量)
这个变量只有在启用 HotModuleReplacementPlugin
或者 ExtendedAPIPlugin
时才生效。这个变量提供对编译过程中(compilation)的 hash 信息的获取。
__non_webpack_require__
(webpack 特有变量)
生成一个不会被 webpack 解析的 require
函数。配合全局可以获取到的 require 函数,可以完成一些酷炫操作。
DEBUG
(webpack 特有变量)
等同于配置选项中的 debug
。