模块变量(module variables)

本章节涵盖了使用 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)

Node.js global.

process (NodeJS)

Node.js process.

__dirname (NodeJS)

取决于 node.__dirname 配置选项:

如果在一个被 Parser 解析的表达式内部使用,则配置选项会被当作 true 处理。

__filename (NodeJS)

取决于 node.__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


原文:https://webpack.js.org/api/module-variables/


进一步阅读


贡献人员