本章节涵盖了使用 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() {
// 做一些操作……
};
W> 无法在异步函数中访问该变量
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
。