blog
blog copied to clipboard
webpack 的 chunk
chunk 可以简单理解为 code spliting 出来的包,如果代码没有 code spliting 那么基本上可以认为对应于所输出的 bundle,webpack 1.0的文档中将 chunk 分为的三种类型,如下:
目前官方文档中已经找不到这些描述了,/(ㄒoㄒ)/~~,不过可以在这两篇博文中看到比较详细的解释
我们在使用 webpack 的时候对于 chunk 比较关注的可能就是使用 code spliting 和写插件的时候,code spliting 这个话题留到之后说,现在主要聊一聊写 webpack 插件时和 chunk 打交道的那些事儿。
webpack 插件的基本格式就是一个含有 apply 方法的 JavaScript 的 class,这个在之前的文章中已经比较完整的提到过了,需要参考的可以看之前的文章:通过 Webpack 的 compiler 对象的 Hooks 学会编写 Webpack 插件的编写
我们在编写插件的时候可以通过 compilation
这个对象对 chunk
进行访问,compilation.chunks
即表示了这次编译的所有 chunks
,可以看一个实例,简单的多入口配置 webpack 配置如下:
const config = {
entry: {
'index': path.join(__dirname, 'index.js'),
'a': path.join(__dirname, 'a.css')
},
output: {
filename: '[name].[hash].js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [{
test: /\.js$/,
use: 'babel-loader'
}, {
test: /\.css$/,
use: [MiniCssExtractPlugin.loader, 'css-loader']
}]
},
plugins: [
new cleanPlugin(),
new MiniCssExtractPlugin({
filename: '[name].css'
}),
new HtmlWebpackPlutin({
template: path.resolve(__dirname, 'index.html')
}),
new ProgressBarPlugin(),
new tablePlugin()
],
devServer: {
contentBase: path.join(__dirname, 'dist'),
port: 10000
},
mode: 'development'
};
在 cleanPlugin
中将这次编译的 chunks
内容打印下来,如下:
const fs = require('fs')
const stringify = require('json-stringify-safe')
class cleanPlugin {
constructor() {
this.entriesWithNoJS = []
}
apply(compiler) {
compiler.hooks.emit.tap('cleanPlugin', (compilation) => {
const cache = []
fs.writeFileSync('chunk.json', stringify(compilation.chunks, null, 2), {
flag: 'w+'
})
})
}
}
module.exports = cleanPlugin
json-stringify-safe
是为了解决 JSON.stringify
方法循环依赖的问题,类似的库还有 flatted 、 circular-json-es6 等
运行一下 webpack,打开 chunk.json
文件,这个文件的内容如下:
[
{
"id": "a",
"ids": [
"a"
],
"debugId": 1004,
"name": "a",
"preventIntegration": false,
"entryModule": {
"dependencies": [
{
"module": {
"dependencies": [],
"blocks": [],
"variables": [],
"type": "css/mini-extract",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1012,
"hash": "08cf1f522d9d27c31e912691f4b31127",
"renderedHash": "08cf1f522d9d27c31e91",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.0.entryModule]",
"dependency": "[Circular ~.0.entryModule.dependencies.0]",
"_chunks": null
}
],
"_chunks": {},
"id": "?7044",
"index": 5,
"index2": 3,
"depth": 1,
"issuer": "[Circular ~.0.entryModule]",
"prefetched": false,
"built": false,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": null,
"_identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/a.css",
"_identifierIndex": 0,
"content": "body {\n background: red;\n font-size: 12px;\n}",
"media": ""
},
"weak": false,
"optional": false,
"identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/a.css",
"identifierIndex": 0,
"content": "body {\n background: red;\n font-size: 12px;\n}",
"media": "",
"context": "/Users/huruji/Documents/webpac-plugin-test"
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1002,
"hash": "76982c2fb2ab3938a545c4a825da5089",
"renderedHash": "76982c2fb2ab3938a545",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"temporaryProvidedExports": false
},
"reasons": [
{
"module": null,
"dependency": {
"module": "[Circular ~.0.entryModule]",
"weak": false,
"optional": false,
"loc": {
"name": "a"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/a.css",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.css"
},
"_chunks": null
},
{
"module": {
"dependencies": [
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -3
},
"originModule": "[Circular ~.0.entryModule.reasons.1.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -2
},
"originModule": "[Circular ~.0.entryModule.reasons.1.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 20
}
},
"expression": "",
"range": [
0,
20
]
},
{
"module": {
"dependencies": [
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -3
},
"originModule": "[Circular ~.0.entryModule.reasons.1.module.dependencies.3.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -2
},
"originModule": "[Circular ~.0.entryModule.reasons.1.module.dependencies.3.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"range": [
15,
18
],
"rangeStatement": [
0,
19
]
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"originModule": "[Circular ~.0.entryModule.reasons.1.module.dependencies.3.module]",
"range": [
15,
18
],
"rangeStatement": [
0,
19
],
"prefix": ""
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1011,
"hash": "8d6445f4bd840f5894be1a891f1c8ceb",
"renderedHash": "8d6445f4bd840f5894be",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"strict": true,
"exportsArgument": "__webpack_exports__",
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.0.entryModule.reasons.1.module]",
"dependency": "[Circular ~.0.entryModule.reasons.1.module.dependencies.3]",
"_chunks": null
},
{
"module": "[Circular ~.0.entryModule.reasons.1.module]",
"dependency": {
"module": "[Circular ~.0.entryModule.reasons.1.module.dependencies.3.module]",
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 2,
"column": 13
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.0.entryModule.reasons.1.module]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
},
"id": "default",
"name": "a",
"range": [
33,
34
],
"strictExportPresence": false,
"namespaceObjectAsContext": false,
"directImport": true,
"shorthand": false
},
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./a.js",
"index": 1,
"index2": 0,
"depth": 1,
"issuer": "[Circular ~.0.entryModule.reasons.1.module]",
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "export default 123;",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"rawRequest": "./a",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js"
}
],
"error": null,
"_buildHash": "9f7bf84b36cbd1e6ccc0fe4b5ce8f1f3",
"buildTimestamp": 1550127876994,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 20
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.0.entryModule.reasons.1.module]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
}
},
{
"module": {
"dependencies": [
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -3
},
"originModule": "[Circular ~.0.entryModule.reasons.1.module.dependencies.4.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -2
},
"originModule": "[Circular ~.0.entryModule.reasons.1.module.dependencies.4.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"range": [
15,
18
],
"rangeStatement": [
0,
19
]
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"originModule": "[Circular ~.0.entryModule.reasons.1.module.dependencies.4.module]",
"range": [
15,
18
],
"rangeStatement": [
0,
19
],
"prefix": ""
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1011,
"hash": "8d6445f4bd840f5894be1a891f1c8ceb",
"renderedHash": "8d6445f4bd840f5894be",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"strict": true,
"exportsArgument": "__webpack_exports__",
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.0.entryModule.reasons.1.module]",
"dependency": {
"module": "[Circular ~.0.entryModule.reasons.1.module.dependencies.4.module]",
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 20
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.0.entryModule.reasons.1.module]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
}
},
"_chunks": null
},
{
"module": "[Circular ~.0.entryModule.reasons.1.module]",
"dependency": "[Circular ~.0.entryModule.reasons.1.module.dependencies.4]",
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./a.js",
"index": 1,
"index2": 0,
"depth": 1,
"issuer": "[Circular ~.0.entryModule.reasons.1.module]",
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "export default 123;",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"rawRequest": "./a",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js"
}
],
"error": null,
"_buildHash": "9f7bf84b36cbd1e6ccc0fe4b5ce8f1f3",
"buildTimestamp": 1550127876994,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 2,
"column": 13
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.0.entryModule.reasons.1.module]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
},
"id": "default",
"name": "a",
"range": [
33,
34
],
"strictExportPresence": false,
"namespaceObjectAsContext": false,
"directImport": true,
"shorthand": false
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 20
}
},
"expression": "",
"range": [
37,
57
]
},
{
"module": {
"dependencies": [
{
"module": {
"dependencies": [],
"blocks": [],
"variables": [],
"type": "css/mini-extract",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1014,
"hash": "f1f0adaf2dc816a4823cf341693f18c8",
"renderedHash": "f1f0adaf2dc816a4823c",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.0.entryModule.reasons.1.module.dependencies.6.module]",
"dependency": "[Circular ~.0.entryModule.reasons.1.module.dependencies.6.module.dependencies.0]",
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "?751f",
"index": 3,
"index2": 1,
"depth": 2,
"issuer": "[Circular ~.0.entryModule.reasons.1.module.dependencies.6.module]",
"prefetched": false,
"built": false,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": null,
"_identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css",
"_identifierIndex": 0,
"content": "body {\n background: #fff\n}",
"media": ""
},
"weak": false,
"optional": false,
"identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css",
"identifierIndex": 0,
"content": "body {\n background: #fff\n}",
"media": "",
"context": "/Users/huruji/Documents/webpac-plugin-test"
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1006,
"hash": "c04c289c0b95239614aa06bb2a310fcc",
"renderedHash": "c04c289c0b95239614aa",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.0.entryModule.reasons.1.module]",
"dependency": "[Circular ~.0.entryModule.reasons.1.module.dependencies.6]",
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./main.css",
"index": 2,
"index2": 2,
"depth": 1,
"issuer": "[Circular ~.0.entryModule.reasons.1.module]",
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "// extracted by mini-css-extract-plugin",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/main.css",
"rawRequest": "./main.css",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/main.css",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js"
},
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js"
}
],
"error": null,
"_buildHash": "5a855d6f954c109e28c85c504bd0c1d3",
"buildTimestamp": 1550127876985,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"providedExports": true
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 20
}
},
"request": "./main.css",
"userRequest": "./main.css",
"originModule": "[Circular ~.0.entryModule.reasons.1.module]",
"sourceOrder": 2,
"parserScope": {
"importVarMap": {}
}
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 17
}
},
"expression": "",
"range": [
58,
75
]
},
{
"module": "[Circular ~.0.entryModule]",
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 17
}
},
"request": "./a.css",
"userRequest": "./a.css",
"originModule": "[Circular ~.0.entryModule.reasons.1.module]",
"sourceOrder": 3,
"parserScope": {
"importVarMap": {}
}
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1004,
"hash": "3e3ed907ea63c1b8ec000db711efd148",
"renderedHash": "3e3ed907ea63c1b8ec00",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"exportsType": "namespace",
"providedExports": []
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"strict": true,
"exportsArgument": "__webpack_exports__",
"temporaryProvidedExports": false
},
"reasons": [
{
"module": null,
"dependency": {
"module": "[Circular ~.0.entryModule.reasons.1.module]",
"weak": false,
"optional": false,
"loc": {
"name": "index"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/index.js"
},
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./index.js",
"index": 0,
"index2": 5,
"depth": 0,
"issuer": null,
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "import a from './a';\nconsole.log(a);\nimport './main.css';\nimport './a.css';",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/index.js"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/index.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"rawRequest": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js"
}
],
"error": null,
"_buildHash": "d1beb4573e61d4768d808e9b8460f47c",
"buildTimestamp": 1550127874127,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"exportsType": "namespace",
"providedExports": []
},
"_ast": null
},
"dependency": {
"module": "[Circular ~.0.entryModule]",
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 17
}
},
"request": "./a.css",
"userRequest": "./a.css",
"originModule": {
"dependencies": [
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -3
},
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -2
},
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 20
}
},
"expression": "",
"range": [
0,
20
]
},
{
"module": {
"dependencies": [
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -3
},
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.3.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -2
},
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.3.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"range": [
15,
18
],
"rangeStatement": [
0,
19
]
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.3.module]",
"range": [
15,
18
],
"rangeStatement": [
0,
19
],
"prefix": ""
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1011,
"hash": "8d6445f4bd840f5894be1a891f1c8ceb",
"renderedHash": "8d6445f4bd840f5894be",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"strict": true,
"exportsArgument": "__webpack_exports__",
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"dependency": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.3]",
"_chunks": null
},
{
"module": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"dependency": {
"module": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.3.module]",
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 2,
"column": 13
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
},
"id": "default",
"name": "a",
"range": [
33,
34
],
"strictExportPresence": false,
"namespaceObjectAsContext": false,
"directImport": true,
"shorthand": false
},
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./a.js",
"index": 1,
"index2": 0,
"depth": 1,
"issuer": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "export default 123;",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"rawRequest": "./a",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js"
}
],
"error": null,
"_buildHash": "9f7bf84b36cbd1e6ccc0fe4b5ce8f1f3",
"buildTimestamp": 1550127876994,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 20
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
}
},
{
"module": {
"dependencies": [
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -3
},
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.4.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -2
},
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.4.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"range": [
15,
18
],
"rangeStatement": [
0,
19
]
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.4.module]",
"range": [
15,
18
],
"rangeStatement": [
0,
19
],
"prefix": ""
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1011,
"hash": "8d6445f4bd840f5894be1a891f1c8ceb",
"renderedHash": "8d6445f4bd840f5894be",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"strict": true,
"exportsArgument": "__webpack_exports__",
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"dependency": {
"module": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.4.module]",
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 20
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
}
},
"_chunks": null
},
{
"module": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"dependency": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.4]",
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./a.js",
"index": 1,
"index2": 0,
"depth": 1,
"issuer": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "export default 123;",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"rawRequest": "./a",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js"
}
],
"error": null,
"_buildHash": "9f7bf84b36cbd1e6ccc0fe4b5ce8f1f3",
"buildTimestamp": 1550127876994,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 2,
"column": 13
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
},
"id": "default",
"name": "a",
"range": [
33,
34
],
"strictExportPresence": false,
"namespaceObjectAsContext": false,
"directImport": true,
"shorthand": false
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 20
}
},
"expression": "",
"range": [
37,
57
]
},
{
"module": {
"dependencies": [
{
"module": {
"dependencies": [],
"blocks": [],
"variables": [],
"type": "css/mini-extract",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1014,
"hash": "f1f0adaf2dc816a4823cf341693f18c8",
"renderedHash": "f1f0adaf2dc816a4823c",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.6.module]",
"dependency": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.6.module.dependencies.0]",
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "?751f",
"index": 3,
"index2": 1,
"depth": 2,
"issuer": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.6.module]",
"prefetched": false,
"built": false,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": null,
"_identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css",
"_identifierIndex": 0,
"content": "body {\n background: #fff\n}",
"media": ""
},
"weak": false,
"optional": false,
"identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css",
"identifierIndex": 0,
"content": "body {\n background: #fff\n}",
"media": "",
"context": "/Users/huruji/Documents/webpac-plugin-test"
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1006,
"hash": "c04c289c0b95239614aa06bb2a310fcc",
"renderedHash": "c04c289c0b95239614aa",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"dependency": "[Circular ~.0.entryModule.reasons.1.dependency.originModule.dependencies.6]",
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./main.css",
"index": 2,
"index2": 2,
"depth": 1,
"issuer": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "// extracted by mini-css-extract-plugin",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/main.css",
"rawRequest": "./main.css",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/main.css",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js"
},
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js"
}
],
"error": null,
"_buildHash": "5a855d6f954c109e28c85c504bd0c1d3",
"buildTimestamp": 1550127876985,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"providedExports": true
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 20
}
},
"request": "./main.css",
"userRequest": "./main.css",
"originModule": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"sourceOrder": 2,
"parserScope": {
"importVarMap": {}
}
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 17
}
},
"expression": "",
"range": [
58,
75
]
},
"[Circular ~.0.entryModule.reasons.1.dependency]"
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1004,
"hash": "3e3ed907ea63c1b8ec000db711efd148",
"renderedHash": "3e3ed907ea63c1b8ec00",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"exportsType": "namespace",
"providedExports": []
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"strict": true,
"exportsArgument": "__webpack_exports__",
"temporaryProvidedExports": false
},
"reasons": [
{
"module": null,
"dependency": {
"module": "[Circular ~.0.entryModule.reasons.1.dependency.originModule]",
"weak": false,
"optional": false,
"loc": {
"name": "index"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/index.js"
},
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./index.js",
"index": 0,
"index2": 5,
"depth": 0,
"issuer": null,
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "import a from './a';\nconsole.log(a);\nimport './main.css';\nimport './a.css';",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/index.js"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/index.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"rawRequest": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js"
}
],
"error": null,
"_buildHash": "d1beb4573e61d4768d808e9b8460f47c",
"buildTimestamp": 1550127874127,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"exportsType": "namespace",
"providedExports": []
},
"_ast": null
},
"sourceOrder": 3,
"parserScope": {
"importVarMap": {}
}
},
"_chunks": null
}
],
"_chunks": {},
"id": "./a.css",
"index": 4,
"index2": 4,
"depth": 0,
"issuer": null,
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "// extracted by mini-css-extract-plugin",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/a.css"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/a.css",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.css",
"rawRequest": "/Users/huruji/Documents/webpac-plugin-test/a.css",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/a.css",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js"
},
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js"
}
],
"error": null,
"_buildHash": "5a855d6f954c109e28c85c504bd0c1d3",
"buildTimestamp": 1550127873318,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"providedExports": true
},
"_ast": null
},
"_modules": {
"_cache": {}
},
"_groups": {
"_lastActiveSortFn": null
},
"files": [
"a.css",
"a.5c50884f7299ede45e0f.js"
],
"rendered": true,
"hash": "bc1c39b8321f86e52b1449d53249a399",
"contentHash": {
"css/mini-extract": "08cf1f522d9d27c31e91",
"javascript": "b2c599d85656b924374d"
},
"renderedHash": "bc1c39b8321f86e52b14",
"extraAsync": false
},
{
"id": "index",
"ids": [
"index"
],
"debugId": 1003,
"name": "index",
"preventIntegration": false,
"entryModule": {
"dependencies": [
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -3
},
"originModule": "[Circular ~.1.entryModule]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -2
},
"originModule": "[Circular ~.1.entryModule]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 20
}
},
"expression": "",
"range": [
0,
20
]
},
{
"module": {
"dependencies": [
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -3
},
"originModule": "[Circular ~.1.entryModule.dependencies.3.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -2
},
"originModule": "[Circular ~.1.entryModule.dependencies.3.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"range": [
15,
18
],
"rangeStatement": [
0,
19
]
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"originModule": "[Circular ~.1.entryModule.dependencies.3.module]",
"range": [
15,
18
],
"rangeStatement": [
0,
19
],
"prefix": ""
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1011,
"hash": "8d6445f4bd840f5894be1a891f1c8ceb",
"renderedHash": "8d6445f4bd840f5894be",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"strict": true,
"exportsArgument": "__webpack_exports__",
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.1.entryModule]",
"dependency": "[Circular ~.1.entryModule.dependencies.3]",
"_chunks": null
},
{
"module": "[Circular ~.1.entryModule]",
"dependency": {
"module": "[Circular ~.1.entryModule.dependencies.3.module]",
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 2,
"column": 13
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.1.entryModule]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
},
"id": "default",
"name": "a",
"range": [
33,
34
],
"strictExportPresence": false,
"namespaceObjectAsContext": false,
"directImport": true,
"shorthand": false
},
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./a.js",
"index": 1,
"index2": 0,
"depth": 1,
"issuer": "[Circular ~.1.entryModule]",
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "export default 123;",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"rawRequest": "./a",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js"
}
],
"error": null,
"_buildHash": "9f7bf84b36cbd1e6ccc0fe4b5ce8f1f3",
"buildTimestamp": 1550127876994,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 20
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.1.entryModule]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
}
},
{
"module": {
"dependencies": [
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -3
},
"originModule": "[Circular ~.1.entryModule.dependencies.4.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": -1,
"column": 0
},
"end": {
"line": -1,
"column": 0
},
"index": -2
},
"originModule": "[Circular ~.1.entryModule.dependencies.4.module]"
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"range": [
15,
18
],
"rangeStatement": [
0,
19
]
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"index": -1
},
"originModule": "[Circular ~.1.entryModule.dependencies.4.module]",
"range": [
15,
18
],
"rangeStatement": [
0,
19
],
"prefix": ""
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1011,
"hash": "8d6445f4bd840f5894be1a891f1c8ceb",
"renderedHash": "8d6445f4bd840f5894be",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"strict": true,
"exportsArgument": "__webpack_exports__",
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.1.entryModule]",
"dependency": {
"module": "[Circular ~.1.entryModule.dependencies.4.module]",
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 20
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.1.entryModule]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
}
},
"_chunks": null
},
{
"module": "[Circular ~.1.entryModule]",
"dependency": "[Circular ~.1.entryModule.dependencies.4]",
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./a.js",
"index": 1,
"index2": 0,
"depth": 1,
"issuer": "[Circular ~.1.entryModule]",
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "export default 123;",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/a.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"rawRequest": "./a",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/a.js",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js"
}
],
"error": null,
"_buildHash": "9f7bf84b36cbd1e6ccc0fe4b5ce8f1f3",
"buildTimestamp": 1550127876994,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"exportsType": "namespace",
"providedExports": [
"default"
]
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 2,
"column": 12
},
"end": {
"line": 2,
"column": 13
}
},
"request": "./a",
"userRequest": "./a",
"originModule": "[Circular ~.1.entryModule]",
"sourceOrder": 1,
"parserScope": {
"importVarMap": {}
},
"id": "default",
"name": "a",
"range": [
33,
34
],
"strictExportPresence": false,
"namespaceObjectAsContext": false,
"directImport": true,
"shorthand": false
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 20
}
},
"expression": "",
"range": [
37,
57
]
},
{
"module": {
"dependencies": [
{
"module": {
"dependencies": [],
"blocks": [],
"variables": [],
"type": "css/mini-extract",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1014,
"hash": "f1f0adaf2dc816a4823cf341693f18c8",
"renderedHash": "f1f0adaf2dc816a4823c",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.1.entryModule.dependencies.6.module]",
"dependency": "[Circular ~.1.entryModule.dependencies.6.module.dependencies.0]",
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "?751f",
"index": 3,
"index2": 1,
"depth": 2,
"issuer": "[Circular ~.1.entryModule.dependencies.6.module]",
"prefetched": false,
"built": false,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": null,
"_identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css",
"_identifierIndex": 0,
"content": "body {\n background: #fff\n}",
"media": ""
},
"weak": false,
"optional": false,
"identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css",
"identifierIndex": 0,
"content": "body {\n background: #fff\n}",
"media": "",
"context": "/Users/huruji/Documents/webpac-plugin-test"
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1006,
"hash": "c04c289c0b95239614aa06bb2a310fcc",
"renderedHash": "c04c289c0b95239614aa",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.1.entryModule]",
"dependency": "[Circular ~.1.entryModule.dependencies.6]",
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./main.css",
"index": 2,
"index2": 2,
"depth": 1,
"issuer": "[Circular ~.1.entryModule]",
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "// extracted by mini-css-extract-plugin",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/main.css",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/main.css",
"rawRequest": "./main.css",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/main.css",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js"
},
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js"
}
],
"error": null,
"_buildHash": "5a855d6f954c109e28c85c504bd0c1d3",
"buildTimestamp": 1550127876985,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"providedExports": true
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 20
}
},
"request": "./main.css",
"userRequest": "./main.css",
"originModule": "[Circular ~.1.entryModule]",
"sourceOrder": 2,
"parserScope": {
"importVarMap": {}
}
},
{
"module": null,
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 17
}
},
"expression": "",
"range": [
58,
75
]
},
{
"module": {
"dependencies": [
{
"module": {
"dependencies": [],
"blocks": [],
"variables": [],
"type": "css/mini-extract",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1012,
"hash": "08cf1f522d9d27c31e912691f4b31127",
"renderedHash": "08cf1f522d9d27c31e91",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"temporaryProvidedExports": false
},
"reasons": [
{
"module": "[Circular ~.1.entryModule.dependencies.8.module]",
"dependency": "[Circular ~.1.entryModule.dependencies.8.module.dependencies.0]",
"_chunks": null
}
],
"_chunks": {},
"id": "?7044",
"index": 5,
"index2": 3,
"depth": 1,
"issuer": "[Circular ~.1.entryModule.dependencies.8.module]",
"prefetched": false,
"built": false,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": null,
"_identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/a.css",
"_identifierIndex": 0,
"content": "body {\n background: red;\n font-size: 12px;\n}",
"media": ""
},
"weak": false,
"optional": false,
"identifier": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/a.css",
"identifierIndex": 0,
"content": "body {\n background: red;\n font-size: 12px;\n}",
"media": "",
"context": "/Users/huruji/Documents/webpac-plugin-test"
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1002,
"hash": "76982c2fb2ab3938a545c4a825da5089",
"renderedHash": "76982c2fb2ab3938a545",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"providedExports": true
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"temporaryProvidedExports": false
},
"reasons": [
{
"module": null,
"dependency": {
"module": "[Circular ~.1.entryModule.dependencies.8.module]",
"weak": false,
"optional": false,
"loc": {
"name": "a"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/a.css",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.css"
},
"_chunks": null
},
{
"module": "[Circular ~.1.entryModule]",
"dependency": "[Circular ~.1.entryModule.dependencies.8]",
"_chunks": null
}
],
"_chunks": {},
"id": "./a.css",
"index": 4,
"index2": 4,
"depth": 0,
"issuer": null,
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "// extracted by mini-css-extract-plugin",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/a.css"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js!/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js!/Users/huruji/Documents/webpac-plugin-test/a.css",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/a.css",
"rawRequest": "/Users/huruji/Documents/webpac-plugin-test/a.css",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/a.css",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/mini-css-extract-plugin/dist/loader.js"
},
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/css-loader/dist/cjs.js"
}
],
"error": null,
"_buildHash": "5a855d6f954c109e28c85c504bd0c1d3",
"buildTimestamp": 1550127873318,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"providedExports": true
},
"_ast": null
},
"weak": false,
"optional": false,
"loc": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 17
}
},
"request": "./a.css",
"userRequest": "./a.css",
"originModule": "[Circular ~.1.entryModule]",
"sourceOrder": 3,
"parserScope": {
"importVarMap": {}
}
}
],
"blocks": [],
"variables": [],
"type": "javascript/auto",
"context": "/Users/huruji/Documents/webpac-plugin-test",
"debugId": 1004,
"hash": "3e3ed907ea63c1b8ec000db711efd148",
"renderedHash": "3e3ed907ea63c1b8ec00",
"resolveOptions": {},
"factoryMeta": {},
"warnings": [],
"errors": [],
"buildMeta": {
"exportsType": "namespace",
"providedExports": []
},
"buildInfo": {
"cacheable": true,
"fileDependencies": {},
"contextDependencies": {},
"strict": true,
"exportsArgument": "__webpack_exports__",
"temporaryProvidedExports": false
},
"reasons": [
{
"module": null,
"dependency": {
"module": "[Circular ~.1.entryModule]",
"weak": false,
"optional": false,
"loc": {
"name": "index"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/index.js"
},
"_chunks": null
}
],
"_chunks": {
"_lastActiveSortFn": null
},
"id": "./index.js",
"index": 0,
"index2": 5,
"depth": 0,
"issuer": null,
"prefetched": false,
"built": true,
"used": null,
"usedExports": null,
"optimizationBailout": [],
"useSourceMap": false,
"_source": {
"_value": "import a from './a';\nconsole.log(a);\nimport './main.css';\nimport './a.css';",
"_name": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/index.js"
},
"request": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js!/Users/huruji/Documents/webpac-plugin-test/index.js",
"userRequest": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"rawRequest": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"binary": false,
"parser": {
"_pluginCompat": {
"_args": [
"options"
],
"taps": [
{
"type": "sync",
"name": "Parser"
},
{
"type": "sync",
"name": "Tapable camelCase",
"stage": 100
},
{
"type": "sync",
"name": "Tapable this.hooks",
"stage": 200
}
],
"interceptors": []
},
"hooks": {
"evaluateTypeof": {
"_map": {},
"_interceptors": []
},
"evaluate": {
"_map": {},
"_interceptors": []
},
"evaluateIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateDefinedIdentifier": {
"_map": {},
"_interceptors": []
},
"evaluateCallExpressionMember": {
"_map": {},
"_interceptors": []
},
"statement": {
"_args": [
"statement"
],
"taps": [],
"interceptors": [],
"_x": []
},
"statementIf": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"label": {
"_map": {},
"_interceptors": []
},
"import": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"importSpecifier": {
"_args": [
"statement",
"source",
"exportName",
"identifierName"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"export": {
"_args": [
"statement"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportImport": {
"_args": [
"statement",
"source"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportDeclaration": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportExpression": {
"_args": [
"statement",
"declaration"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": [],
"_x": [
null
]
},
"exportSpecifier": {
"_args": [
"statement",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"exportImportSpecifier": {
"_args": [
"statement",
"source",
"identifierName",
"exportName",
"index"
],
"taps": [
{
"type": "sync",
"name": "HarmonyExportDependencyParserPlugin"
}
],
"interceptors": []
},
"varDeclaration": {
"_map": {},
"_interceptors": []
},
"varDeclarationLet": {
"_map": {},
"_interceptors": []
},
"varDeclarationConst": {
"_map": {},
"_interceptors": []
},
"varDeclarationVar": {
"_map": {},
"_interceptors": []
},
"canRename": {
"_map": {},
"_interceptors": []
},
"rename": {
"_map": {},
"_interceptors": []
},
"assigned": {
"_map": {},
"_interceptors": []
},
"assign": {
"_map": {},
"_interceptors": []
},
"typeof": {
"_map": {},
"_interceptors": []
},
"importCall": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ImportParserPlugin"
}
],
"interceptors": []
},
"call": {
"_map": {},
"_interceptors": []
},
"callAnyMember": {
"_map": {},
"_interceptors": []
},
"new": {
"_map": {},
"_interceptors": []
},
"expression": {
"_map": {},
"_interceptors": []
},
"expressionAnyMember": {
"_map": {},
"_interceptors": []
},
"expressionConditionalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"expressionLogicalOperator": {
"_args": [
"expression"
],
"taps": [
{
"type": "sync",
"name": "ConstPlugin"
}
],
"interceptors": []
},
"program": {
"_args": [
"ast",
"comments"
],
"taps": [
{
"type": "sync",
"name": "HarmonyDetectionParserPlugin"
},
{
"type": "sync",
"name": "UseStrictPlugin"
}
],
"interceptors": [],
"_x": [
null,
null
]
},
"hotAcceptCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
},
"hotAcceptWithoutCallback": {
"_args": [
"expression",
"requests"
],
"taps": [
{
"type": "sync",
"name": "HarmonyImportDependencyParserPlugin"
}
],
"interceptors": []
}
},
"options": {},
"sourceType": "auto"
},
"generator": {},
"resource": "/Users/huruji/Documents/webpac-plugin-test/index.js",
"loaders": [
{
"loader": "/Users/huruji/Documents/webpac-plugin-test/node_modules/babel-loader/lib/index.js"
}
],
"error": null,
"_buildHash": "d1beb4573e61d4768d808e9b8460f47c",
"buildTimestamp": 1550127874127,
"_cachedSources": {},
"lineToLine": false,
"_lastSuccessfulBuildMeta": {
"exportsType": "namespace",
"providedExports": []
},
"_ast": null
},
"_modules": {
"_cache": {}
},
"_groups": {
"_lastActiveSortFn": null
},
"files": [
"index.css",
"index.5c50884f7299ede45e0f.js"
],
"rendered": true,
"hash": "f5481eb1afed794b176d13608fe4bb0e",
"contentHash": {
"css/mini-extract": "449934d87925dc54b299",
"javascript": "322bcaec3cd5eeaeddae"
},
"renderedHash": "f5481eb1afed794b176d",
"extraAsync": false
}
]
7000+ 行数确实让人有点望而却步,不过整理一下,可以发现这个数组包含两个 chunk
,显然这是符合我们预期的
将其中一个 chunk
的拆解来看,大概是一个含有 id 、 entryModule、files、各种哈希的一个对象,其中 files 可以理解为输出的这个 chunk
会输出的文件数组。
得益于 webpack
的开源以及合理的命名,我们可以在 webpack 的仓库中找到关于 chunk
的源码,https://github.com/webpack/webpack/blob/master/lib/Chunk.js
很容易发现 chunk
其实是一个 class 对象
通过 Object.getOwnProppertyNames
方法可以获取 class 的属性,如下:
compilation.chunks.forEach((chunk) => {
fs.writeFileSync('chunk-methods.json', stringify(Object.getOwnPropertyNames(chunk.__proto__), null, 2), {
flag: 'w+'
})
})