mirror of https://github.com/webpack/webpack.git
Merge pull request #6128 from webpack/bugfix/wasm-esm-and-exports
WASM bugfixes/improvements (fix weird extra default)
This commit is contained in:
commit
8bc82da2ca
|
|
@ -186,7 +186,7 @@ export function fibonacciJavascript(i) {
|
|||
/******/
|
||||
/******/ // a Promise means "currently loading" or "already loaded".
|
||||
/******/ promises.push(installedWasmModuleData ||
|
||||
/******/ (installedWasmModules[wasmModuleId] = fetch(__webpack_require__.p + "" + {"1":"27bb124d07adac2541fe","3":"0e736bedbc15ed9c8e33","4":"435e0d0a43195d073ec9"}[wasmModuleId] + ".wasm").then(function(response) {
|
||||
/******/ (installedWasmModules[wasmModuleId] = fetch(__webpack_require__.p + "" + {"1":"77ca5181080bbc4c2f55","3":"b6b19efd9d04360b0a8d","4":"61f7b7b231ff2e0b5d25"}[wasmModuleId] + ".wasm").then(function(response) {
|
||||
/******/ if(WebAssembly.compileStreaming) {
|
||||
/******/ return WebAssembly.compileStreaming(response);
|
||||
/******/ } else {
|
||||
|
|
@ -264,7 +264,7 @@ export function fibonacciJavascript(i) {
|
|||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
__webpack_require__.e/* import() */(1).then(function() { var module = __webpack_require__(/*! ./add.wasm */1); return typeof module === "object" && module && module.__esModule ? module : /* fake namespace object */ { "default": module }; }).then(addModule => {
|
||||
__webpack_require__.e/* import() */(1).then(__webpack_require__.bind(null, /*! ./add.wasm */1)).then(addModule => {
|
||||
console.log(addModule.add(22, 2200));
|
||||
__webpack_require__.e/* import() */(0).then(__webpack_require__.bind(null, /*! ./math */2)).then(math => {
|
||||
console.log(math.add(10, 101));
|
||||
|
|
@ -305,7 +305,7 @@ function timed(name, fn) {
|
|||
/*!******************!*\
|
||||
!*** ./add.wasm ***!
|
||||
\******************/
|
||||
/*! no static exports found */
|
||||
/*! exports provided: add */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
|
@ -329,15 +329,12 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "factorialJavascript", function() { return factorialJavascript; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fibonacciJavascript", function() { return fibonacciJavascript; });
|
||||
/* harmony import */ var _add_wasm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./add.wasm */1);
|
||||
/* harmony import */ var _add_wasm__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_add_wasm__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "add", function() { return _add_wasm__WEBPACK_IMPORTED_MODULE_0__["add"]; });
|
||||
|
||||
/* harmony import */ var _factorial_wasm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./factorial.wasm */3);
|
||||
/* harmony import */ var _factorial_wasm__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_factorial_wasm__WEBPACK_IMPORTED_MODULE_1__);
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "factorial", function() { return _factorial_wasm__WEBPACK_IMPORTED_MODULE_1__["factorial"]; });
|
||||
|
||||
/* harmony import */ var _fibonacci_wasm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fibonacci.wasm */4);
|
||||
/* harmony import */ var _fibonacci_wasm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_fibonacci_wasm__WEBPACK_IMPORTED_MODULE_2__);
|
||||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fibonacci", function() { return _fibonacci_wasm__WEBPACK_IMPORTED_MODULE_2__["fibonacci"]; });
|
||||
|
||||
|
||||
|
|
@ -362,7 +359,7 @@ function fibonacciJavascript(i) {
|
|||
/*!************************!*\
|
||||
!*** ./factorial.wasm ***!
|
||||
\************************/
|
||||
/*! no static exports found */
|
||||
/*! exports provided: factorial */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
|
@ -378,7 +375,7 @@ module.exports = instance.exports;
|
|||
/*!************************!*\
|
||||
!*** ./fibonacci.wasm ***!
|
||||
\************************/
|
||||
/*! no static exports found */
|
||||
/*! exports provided: fibonacci */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
|
@ -402,7 +399,7 @@ module.exports = instance.exports;
|
|||
/*!******************!*\
|
||||
!*** ./add.wasm ***!
|
||||
\******************/
|
||||
/*! no static exports found */
|
||||
/*! exports provided: add */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
|
@ -425,16 +422,17 @@ module.exports = instance.exports;
|
|||
Hash: 0a1b2c3d4e5f6a7b8c9d
|
||||
Version: webpack next
|
||||
Asset Size Chunks Chunk Names
|
||||
0.output.js 3.33 KiB 0 [emitted]
|
||||
27bb124d07adac2541fe.wasm 41 bytes 0, 1 [emitted]
|
||||
0e736bedbc15ed9c8e33.wasm 62 bytes 0 [emitted]
|
||||
435e0d0a43195d073ec9.wasm 67 bytes 0 [emitted]
|
||||
1.output.js 462 bytes 1 [emitted]
|
||||
output.js 9 KiB 2 [emitted] main
|
||||
0.output.js 2.87 KiB 0 [emitted]
|
||||
77ca5181080bbc4c2f55.wasm 41 bytes 0, 1 [emitted]
|
||||
b6b19efd9d04360b0a8d.wasm 62 bytes 0 [emitted]
|
||||
61f7b7b231ff2e0b5d25.wasm 67 bytes 0 [emitted]
|
||||
1.output.js 460 bytes 1 [emitted]
|
||||
output.js 8.86 KiB 2 [emitted] main
|
||||
Entrypoint main = output.js
|
||||
chunk {0} 0.output.js, 27bb124d07adac2541fe.wasm, 0e736bedbc15ed9c8e33.wasm, 435e0d0a43195d073ec9.wasm 585 bytes {2} [rendered]
|
||||
chunk {0} 0.output.js, 77ca5181080bbc4c2f55.wasm, b6b19efd9d04360b0a8d.wasm, 61f7b7b231ff2e0b5d25.wasm 585 bytes {2} [rendered]
|
||||
> [0] ./example.js 3:1-17
|
||||
[1] ./add.wasm 41 bytes {0} {1} [built]
|
||||
[exports: add]
|
||||
import() ./add.wasm [0] ./example.js 1:0-20
|
||||
harmony side effect evaluation ./add.wasm [2] ./math.js 1:0-33
|
||||
harmony export imported specifier ./add.wasm [2] ./math.js 5:0-37
|
||||
|
|
@ -442,14 +440,17 @@ chunk {0} 0.output.js, 27bb124d07adac2541fe.wasm, 0e736bedbc15ed9c8e33.wasm,
|
|||
[exports: add, factorial, fibonacci, factorialJavascript, fibonacciJavascript]
|
||||
import() ./math [0] ./example.js 3:1-17
|
||||
[3] ./factorial.wasm 62 bytes {0} [built]
|
||||
[exports: factorial]
|
||||
harmony side effect evaluation ./factorial.wasm [2] ./math.js 2:0-45
|
||||
harmony export imported specifier ./factorial.wasm [2] ./math.js 5:0-37
|
||||
[4] ./fibonacci.wasm 67 bytes {0} [built]
|
||||
[exports: fibonacci]
|
||||
harmony side effect evaluation ./fibonacci.wasm [2] ./math.js 3:0-45
|
||||
harmony export imported specifier ./fibonacci.wasm [2] ./math.js 5:0-37
|
||||
chunk {1} 1.output.js, 27bb124d07adac2541fe.wasm 41 bytes {2} [rendered]
|
||||
chunk {1} 1.output.js, 77ca5181080bbc4c2f55.wasm 41 bytes {2} [rendered]
|
||||
> [0] ./example.js 1:0-20
|
||||
[1] ./add.wasm 41 bytes {0} {1} [built]
|
||||
[exports: add]
|
||||
import() ./add.wasm [0] ./example.js 1:0-20
|
||||
harmony side effect evaluation ./add.wasm [2] ./math.js 1:0-33
|
||||
harmony export imported specifier ./add.wasm [2] ./math.js 5:0-37
|
||||
|
|
@ -465,16 +466,17 @@ chunk {2} output.js (main) 788 bytes [entry] [rendered]
|
|||
Hash: 0a1b2c3d4e5f6a7b8c9d
|
||||
Version: webpack next
|
||||
Asset Size Chunks Chunk Names
|
||||
0.output.js 730 bytes 0, 1 [emitted]
|
||||
ca9c9d58a020ad464842.wasm 41 bytes 0, 1, 1 [emitted]
|
||||
64fb1a95d49da0773219.wasm 62 bytes 0, 1 [emitted]
|
||||
bc9b931dad77c0bbc6cc.wasm 67 bytes 0, 1 [emitted]
|
||||
0.output.js 722 bytes 0, 1 [emitted]
|
||||
a1752e23bae9d6697e19.wasm 41 bytes 0, 1, 1 [emitted]
|
||||
0b5fb42103459586a7f7.wasm 62 bytes 0, 1 [emitted]
|
||||
48b4a645ac3841813d4e.wasm 67 bytes 0, 1 [emitted]
|
||||
1.output.js 155 bytes 1 [emitted]
|
||||
output.js 2.58 KiB 2 [emitted] main
|
||||
output.js 2.52 KiB 2 [emitted] main
|
||||
Entrypoint main = output.js
|
||||
chunk {0} 0.output.js, ca9c9d58a020ad464842.wasm, 64fb1a95d49da0773219.wasm, bc9b931dad77c0bbc6cc.wasm 585 bytes {2} [rendered]
|
||||
chunk {0} 0.output.js, a1752e23bae9d6697e19.wasm, 0b5fb42103459586a7f7.wasm, 48b4a645ac3841813d4e.wasm 585 bytes {2} [rendered]
|
||||
> [0] ./example.js 3:1-17
|
||||
[1] ./add.wasm 41 bytes {0} {1} [built]
|
||||
[exports: add]
|
||||
import() ./add.wasm [0] ./example.js 1:0-20
|
||||
harmony side effect evaluation ./add.wasm [2] ./math.js 1:0-33
|
||||
harmony export imported specifier ./add.wasm [2] ./math.js 5:0-37
|
||||
|
|
@ -482,16 +484,19 @@ chunk {0} 0.output.js, ca9c9d58a020ad464842.wasm, 64fb1a95d49da0773219.wasm,
|
|||
[exports: add, factorial, fibonacci, factorialJavascript, fibonacciJavascript]
|
||||
import() ./math [0] ./example.js 3:1-17
|
||||
[3] ./factorial.wasm 62 bytes {0} [built]
|
||||
[exports: factorial]
|
||||
[only some exports used: factorial]
|
||||
harmony side effect evaluation ./factorial.wasm [2] ./math.js 2:0-45
|
||||
harmony export imported specifier ./factorial.wasm [2] ./math.js 5:0-37
|
||||
[4] ./fibonacci.wasm 67 bytes {0} [built]
|
||||
[exports: fibonacci]
|
||||
[only some exports used: fibonacci]
|
||||
harmony side effect evaluation ./fibonacci.wasm [2] ./math.js 3:0-45
|
||||
harmony export imported specifier ./fibonacci.wasm [2] ./math.js 5:0-37
|
||||
chunk {1} 1.output.js, ca9c9d58a020ad464842.wasm 41 bytes {2} [rendered]
|
||||
chunk {1} 1.output.js, a1752e23bae9d6697e19.wasm 41 bytes {2} [rendered]
|
||||
> [0] ./example.js 1:0-20
|
||||
[1] ./add.wasm 41 bytes {0} {1} [built]
|
||||
[exports: add]
|
||||
import() ./add.wasm [0] ./example.js 1:0-20
|
||||
harmony side effect evaluation ./add.wasm [2] ./math.js 1:0-33
|
||||
harmony export imported specifier ./add.wasm [2] ./math.js 5:0-37
|
||||
|
|
|
|||
|
|
@ -313,22 +313,38 @@ class NormalModule extends Module {
|
|||
return callback();
|
||||
}
|
||||
|
||||
try {
|
||||
this.parser.parse(this._ast || this._source.source(), {
|
||||
current: this,
|
||||
module: this,
|
||||
compilation: compilation,
|
||||
options: options
|
||||
});
|
||||
} catch(e) {
|
||||
const handleParseError = e => {
|
||||
const source = this._source.source();
|
||||
const error = new ModuleParseError(this, source, e);
|
||||
this.markModuleAsErrored(error);
|
||||
return callback();
|
||||
}
|
||||
};
|
||||
|
||||
this._lastSuccessfulBuildMeta = this.buildMeta;
|
||||
return callback();
|
||||
const handleParseResult = result => {
|
||||
this._lastSuccessfulBuildMeta = this.buildMeta;
|
||||
return callback();
|
||||
};
|
||||
|
||||
try {
|
||||
const result = this.parser.parse(this._ast || this._source.source(), {
|
||||
current: this,
|
||||
module: this,
|
||||
compilation: compilation,
|
||||
options: options
|
||||
}, (err, result) => {
|
||||
if(err) {
|
||||
handleParseError(err);
|
||||
} else {
|
||||
handleParseResult(result);
|
||||
}
|
||||
});
|
||||
if(result !== undefined) {
|
||||
// parse is sync
|
||||
handleParseResult(result);
|
||||
}
|
||||
} catch(e) {
|
||||
handleParseError(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
/* globals WebAssembly */
|
||||
"use strict";
|
||||
|
||||
// Syntax: https://developer.mozilla.org/en/SpiderMonkey/Parser_API
|
||||
|
|
@ -15,11 +16,24 @@ class WebAssemblyParser extends Tapable {
|
|||
this.options = options;
|
||||
}
|
||||
|
||||
parse(source, initialState) {
|
||||
// Does nothing current
|
||||
parse(source, state, callback) {
|
||||
// TODO parse WASM AST and walk it
|
||||
// extract exports, imports
|
||||
return initialState;
|
||||
// TODO extract imports
|
||||
|
||||
// flag it as ESM
|
||||
state.module.buildMeta.harmonyModule = true;
|
||||
|
||||
// extract exports
|
||||
// TODO find more efficient way doing it
|
||||
// TODO use Promises
|
||||
if(typeof WebAssembly !== "undefined") {
|
||||
WebAssembly.compile(source).then(module => {
|
||||
state.module.buildMeta.providedExports = WebAssembly.Module.exports(module).map(exp => exp.name);
|
||||
}).then(() => callback(null, state), err => callback(err));
|
||||
} else {
|
||||
state.module.buildMeta.providedExports = false;
|
||||
callback(null, state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@
|
|||
"use strict";
|
||||
|
||||
const ReadFileCompileWasmMainTemplatePlugin = require("./ReadFileCompileWasmMainTemplatePlugin");
|
||||
const ReadFileCompileWasmModuleTemplatePlugin = require("./ReadFileCompileWasmModuleTemplatePlugin");
|
||||
const WasmModuleTemplatePlugin = require("../wasm/WasmModuleTemplatePlugin");
|
||||
|
||||
class ReadFileCompileWasmTemplatePlugin {
|
||||
apply(compiler) {
|
||||
compiler.hooks.thisCompilation.tap("ReadFileCompileWasmTemplatePlugin", (compilation) => {
|
||||
compilation.mainTemplate.apply(new ReadFileCompileWasmMainTemplatePlugin());
|
||||
compilation.moduleTemplates.javascript.apply(new ReadFileCompileWasmModuleTemplatePlugin());
|
||||
compilation.moduleTemplates.javascript.apply(new WasmModuleTemplatePlugin());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
const RawSource = require("webpack-sources").RawSource;
|
||||
|
||||
class ReadFileCompileWasmModuleTemplatePlugin {
|
||||
class WasmModuleTemplatePlugin {
|
||||
apply(moduleTemplate) {
|
||||
moduleTemplate.plugin("content", (moduleSource, module, {
|
||||
chunk
|
||||
|
|
@ -14,6 +14,22 @@ class ReadFileCompileWasmModuleTemplatePlugin {
|
|||
if(module.type && module.type.startsWith("webassembly")) {
|
||||
if(chunk.isInitial())
|
||||
throw new Error("Sync WebAsssmbly compilation is not yet implemented");
|
||||
const generateExports = () => {
|
||||
if(Array.isArray(module.buildMeta.providedExports) && Array.isArray(module.usedExports)) {
|
||||
// generate mangled exports
|
||||
return module.buildMeta.providedExports.map(exp => {
|
||||
const usedName = module.isUsed(exp);
|
||||
if(usedName) {
|
||||
return `${module.exportsArgument}[${JSON.stringify(usedName)}] = instance.exports[${JSON.stringify(exp)}];`;
|
||||
} else {
|
||||
return `// unused ${JSON.stringify(exp)} export`;
|
||||
}
|
||||
}).join("\n");
|
||||
} else {
|
||||
// generate simple export
|
||||
return `${module.moduleArgument}.exports = instance.exports;`;
|
||||
}
|
||||
};
|
||||
const source = new RawSource([
|
||||
"\"use strict\";",
|
||||
"",
|
||||
|
|
@ -22,7 +38,7 @@ class ReadFileCompileWasmModuleTemplatePlugin {
|
|||
"",
|
||||
"// export exports from WebAssmbly module",
|
||||
// TODO rewrite this to getters depending on exports to support circular dependencies
|
||||
"module.exports = instance.exports;"
|
||||
generateExports()
|
||||
].join("\n"));
|
||||
return source;
|
||||
} else {
|
||||
|
|
@ -31,9 +47,9 @@ class ReadFileCompileWasmModuleTemplatePlugin {
|
|||
});
|
||||
|
||||
moduleTemplate.plugin("hash", hash => {
|
||||
hash.update("ReadFileCompileWasmModuleTemplatePlugin");
|
||||
hash.update("WasmModuleTemplatePlugin");
|
||||
hash.update("1");
|
||||
});
|
||||
}
|
||||
}
|
||||
module.exports = ReadFileCompileWasmModuleTemplatePlugin;
|
||||
module.exports = WasmModuleTemplatePlugin;
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
/*
|
||||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
const RawSource = require("webpack-sources").RawSource;
|
||||
|
||||
class FetchCompileWasmModuleTemplatePlugin {
|
||||
apply(moduleTemplate) {
|
||||
moduleTemplate.plugin("content", (moduleSource, module, {
|
||||
chunk
|
||||
}) => {
|
||||
if(module.type && module.type.startsWith("webassembly")) {
|
||||
if(chunk.isInitial())
|
||||
throw new Error("Sync WebAsssmbly compilation is not yet implemented");
|
||||
const source = new RawSource([
|
||||
"\"use strict\";",
|
||||
"",
|
||||
"// Instanciate WebAssembly module",
|
||||
"var instance = new WebAssembly.Instance(__webpack_require__.w[module.i], {});",
|
||||
"",
|
||||
"// export exports from WebAssmbly module",
|
||||
// TODO rewrite this to getters depending on exports to support circular dependencies
|
||||
"module.exports = instance.exports;"
|
||||
].join("\n"));
|
||||
return source;
|
||||
} else {
|
||||
return moduleSource;
|
||||
}
|
||||
});
|
||||
|
||||
moduleTemplate.plugin("hash", hash => {
|
||||
hash.update("FetchCompileWasmModuleTemplatePlugin");
|
||||
hash.update("1");
|
||||
});
|
||||
}
|
||||
}
|
||||
module.exports = FetchCompileWasmModuleTemplatePlugin;
|
||||
|
|
@ -5,13 +5,13 @@
|
|||
"use strict";
|
||||
|
||||
const FetchCompileWasmMainTemplatePlugin = require("./FetchCompileWasmMainTemplatePlugin");
|
||||
const FetchCompileWasmModuleTemplatePlugin = require("./FetchCompileWasmModuleTemplatePlugin");
|
||||
const WasmModuleTemplatePlugin = require("../wasm/WasmModuleTemplatePlugin");
|
||||
|
||||
class FetchCompileWasmTemplatePlugin {
|
||||
apply(compiler) {
|
||||
compiler.hooks.thisCompilation.tap("FetchCompileWasmTemplatePlugin", (compilation) => {
|
||||
compilation.mainTemplate.apply(new FetchCompileWasmMainTemplatePlugin());
|
||||
compilation.moduleTemplates.javascript.apply(new FetchCompileWasmModuleTemplatePlugin());
|
||||
compilation.moduleTemplates.javascript.apply(new WasmModuleTemplatePlugin());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,13 @@
|
|||
it("should allow to run a WebAssembly module", function(done) {
|
||||
import("./module").then(function(module) {
|
||||
it("should allow to run a WebAssembly module (indirect)", function() {
|
||||
return import("./module").then(function(module) {
|
||||
const result = module.run();
|
||||
result.should.be.eql(42);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("should allow to run a WebAssembly module (direct)", function() {
|
||||
return import("./wasm.wasm?2").then(function(wasm) {
|
||||
const result = wasm.add(wasm.getNumber(), 2);
|
||||
result.should.be.eql(42);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { add, getNumber } from "./wasm.wasm";
|
||||
import { add, getNumber } from "./wasm.wasm?1";
|
||||
|
||||
export function run() {
|
||||
return add(getNumber(), 2);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Hash: 944f966a4eb0dca2f58a944f966a4eb0dca2f58a
|
||||
Hash: a1332ffdc8f016e06e2da1332ffdc8f016e06e2d
|
||||
Child fitting:
|
||||
Hash: 944f966a4eb0dca2f58a
|
||||
Hash: a1332ffdc8f016e06e2d
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
8687608dde0469fd3fba.js 2.23 KiB 0 [emitted]
|
||||
|
|
@ -25,7 +25,7 @@ Child fitting:
|
|||
> aggressive-splitted main [4] ./index.js
|
||||
[3] ./e.js 899 bytes {6} [built]
|
||||
Child content-change:
|
||||
Hash: 944f966a4eb0dca2f58a
|
||||
Hash: a1332ffdc8f016e06e2d
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
8687608dde0469fd3fba.js 2.23 KiB 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 1ebefd12bbb8287a92b5
|
||||
Hash: 3905d68515b61aa1238c
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
678a72d82e420b28b031.js 1.96 KiB 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 3ce0bfad95632a1a689e
|
||||
Hash: 8f74408892465f3dc6d5
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.bundle.js 528 bytes 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: cfe0b4cca77f5362a0f6
|
||||
Hash: cbb94bfd28c61629de06
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.bundle.js 288 bytes 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 0be92f7ab7df0ba4d10a
|
||||
Hash: 8f6f87bae4f020e96522
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
main.js 2.6 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: <CLR=BOLD>0be92f7ab7df0ba4d10a</CLR>
|
||||
Hash: <CLR=BOLD>8f6f87bae4f020e96522</CLR>
|
||||
Time: <CLR=BOLD>X</CLR>ms
|
||||
<CLR=BOLD>Asset</CLR> <CLR=BOLD>Size</CLR> <CLR=BOLD>Chunks</CLR> <CLR=39,BOLD><CLR=22> <CLR=39,BOLD><CLR=22><CLR=BOLD>Chunk Names</CLR>
|
||||
<CLR=32>main.js</CLR> 2.6 KiB <CLR=BOLD>0</CLR> <CLR=32>[emitted]</CLR> main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: <CLR=BOLD>0be92f7ab7df0ba4d10a</CLR>
|
||||
Hash: <CLR=BOLD>8f6f87bae4f020e96522</CLR>
|
||||
Time: <CLR=BOLD>X</CLR>ms
|
||||
<CLR=BOLD>Asset</CLR> <CLR=BOLD>Size</CLR> <CLR=BOLD>Chunks</CLR> <CLR=39,BOLD><CLR=22> <CLR=39,BOLD><CLR=22><CLR=BOLD>Chunk Names</CLR>
|
||||
<CLR=32,BOLD>main.js</CLR> 2.6 KiB <CLR=BOLD>0</CLR> <CLR=32,BOLD>[emitted]</CLR> main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 00a1e5057df2f775fb76
|
||||
Hash: 36b0cc1896bc075e9b15
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
entry-1.js 81 bytes 0 [emitted] entry-1
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 37bc305daae8681aa9d0
|
||||
Hash: 9c21c5852f540cdeffb9
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
entry-1.js 3.22 KiB 0 [emitted] entry-1
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Hash: e6af0e572727ae2b753cbb2d69615a180135bcde
|
||||
Hash: a6418d72fd6bad27d7e001bd4246a474bfd828f8
|
||||
Child
|
||||
Hash: e6af0e572727ae2b753c
|
||||
Hash: a6418d72fd6bad27d7e0
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
app.js 656 bytes 0 [emitted] app
|
||||
|
|
@ -9,7 +9,7 @@ Child
|
|||
[./constants.js] 87 bytes {1} [built]
|
||||
[./entry-1.js] ./entry-1.js + 2 modules 190 bytes {0} [built]
|
||||
Child
|
||||
Hash: bb2d69615a180135bcde
|
||||
Hash: 01bd4246a474bfd828f8
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
app.js 673 bytes 0 [emitted] app
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
Hash: 3cc0d6b1ff5f64f9667a5b4570daab591bb1c99b
|
||||
Hash: bb44149cc6ff44057a6db39ed0896245106f412b
|
||||
Child
|
||||
Hash: 3cc0d6b1ff5f64f9667a
|
||||
Hash: bb44149cc6ff44057a6d
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
main.js 2.62 KiB 0 [emitted] main
|
||||
[0] ./index.js 24 bytes {0} [built]
|
||||
Child
|
||||
Hash: 5b4570daab591bb1c99b
|
||||
Hash: b39ed0896245106f412b
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
main.js 2.62 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 097436097dd8213a68b7
|
||||
Hash: 0c78424b0f03182d4365
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 3.03 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: dfff25717ba14e81a924
|
||||
Hash: eec74eeea2d377db0b5a
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
main.js 2.73 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Hash: 1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea30497d996dfd40bcc9ea304
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
|
|
@ -18,37 +18,37 @@ Child
|
|||
Dropping unused function someRemoteUnUsedFunction4 [./a.js:6,0]
|
||||
Dropping unused function someRemoteUnUsedFunction5 [./a.js:7,0]
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
|
|
@ -66,7 +66,7 @@ Child
|
|||
Dropping unused function someRemoteUnUsedFunction4 [./a.js:6,0]
|
||||
Dropping unused function someRemoteUnUsedFunction5 [./a.js:7,0]
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
|
|
@ -84,7 +84,7 @@ Child
|
|||
Dropping unused function someRemoteUnUsedFunction4 [./a.js:6,0]
|
||||
Dropping unused function someRemoteUnUsedFunction5 [./a.js:7,0]
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
|
|
@ -102,7 +102,7 @@ Child
|
|||
Dropping unused function someRemoteUnUsedFunction4 [./a.js:6,0]
|
||||
Dropping unused function someRemoteUnUsedFunction5 [./a.js:7,0]
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
|
|
@ -120,7 +120,7 @@ Child
|
|||
Dropping unused function someRemoteUnUsedFunction4 [./a.js:6,0]
|
||||
Dropping unused function someRemoteUnUsedFunction5 [./a.js:7,0]
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
|
|
@ -138,7 +138,7 @@ Child
|
|||
Dropping unused function someRemoteUnUsedFunction4 [./a.js:6,0]
|
||||
Dropping unused function someRemoteUnUsedFunction5 [./a.js:7,0]
|
||||
Child
|
||||
Hash: 1d6fab3f37874a94af1d
|
||||
Hash: 97d996dfd40bcc9ea304
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: d0973910493cc5189e80
|
||||
Hash: 849b4edd059844e28e79
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.js 308 bytes 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 222921686dab1fa295e6
|
||||
Hash: 76f3311214153561286d
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.js 149 bytes 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Hash: 566e6d86b3b6998ceb45ec6b4377b990cf9aa0f27df19c8a49efc26d8a82c0aba64e48df19532dd6
|
||||
Hash: 0bcb77c121105f5554b0ab68321fd63b5c89a52e03de2ce08eb5c10082da62928bff1601bb294074
|
||||
Child
|
||||
Hash: 566e6d86b3b6998ceb45
|
||||
Hash: 0bcb77c121105f5554b0
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 3.79 KiB 0 [emitted] main
|
||||
|
|
@ -12,7 +12,7 @@ Child
|
|||
[4] ./d.js 22 bytes {0} [built]
|
||||
[5] ./e.js 22 bytes {0} [built]
|
||||
Child
|
||||
Hash: ec6b4377b990cf9aa0f2
|
||||
Hash: ab68321fd63b5c89a52e
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.bundle.js 941 bytes 0 [emitted]
|
||||
|
|
@ -26,7 +26,7 @@ Child
|
|||
chunk {1} bundle.js (main) 73 bytes [entry] [rendered]
|
||||
[0] ./index.js 73 bytes {1} [built]
|
||||
Child
|
||||
Hash: 7df19c8a49efc26d8a82
|
||||
Hash: 03de2ce08eb5c10082da
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.bundle.js 794 bytes 0 [emitted]
|
||||
|
|
@ -42,7 +42,7 @@ Child
|
|||
chunk {2} bundle.js (main) 73 bytes [entry] [rendered]
|
||||
[0] ./index.js 73 bytes {2} [built]
|
||||
Child
|
||||
Hash: c0aba64e48df19532dd6
|
||||
Hash: 62928bff1601bb294074
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.bundle.js 232 bytes 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 16c755b3da4ebf036ffb
|
||||
Hash: bd81f720878983455ffa
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
main.js 5.84 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 16c755b3da4ebf036ffb
|
||||
Hash: bd81f720878983455ffa
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
main.js 5.84 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 342fdebfd3bf4930e50e
|
||||
Hash: 4395fd92d4570f9ff7ee
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
chunk-containing-__a_js.js 461 bytes chunk-containing-__a_js [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: ab4e2d3ab74da1024437
|
||||
Hash: 721576e28d8fd9ef466a
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
entry.js 425 bytes entry [emitted] entry
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 82c14b6bc607dc9d3f12
|
||||
Hash: ad2b1e5741d17c324536
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.js 281 bytes 0 [emitted] cir1
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 54caedd6b3654722c2b3
|
||||
Hash: 91ae48f7eb2c733a3e1b
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.js 288 bytes 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 54caedd6b3654722c2b3
|
||||
Hash: 91ae48f7eb2c733a3e1b
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.js 288 bytes 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 54caedd6b3654722c2b3
|
||||
Hash: 91ae48f7eb2c733a3e1b
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
0.js 288 bytes 0 [emitted]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: a0254dbb48c63efa572d
|
||||
Hash: 405c9e2b6a4d5ab4698b
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 3 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 16c755b3da4ebf036ffb
|
||||
Hash: bd81f720878983455ffa
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
main.js 5.84 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Hash: 1a1fc03e39a800dd03d4ac95f6addf9bb1d962a3
|
||||
Hash: 332364d475206d108d3f658ab07cd2982e743929
|
||||
Child
|
||||
Hash: 1a1fc03e39a800dd03d4
|
||||
Hash: 332364d475206d108d3f
|
||||
Time: Xms
|
||||
[0] ./common2.js 25 bytes {3} {4} [built]
|
||||
[1] ./common_lazy_shared.js 25 bytes {0} {1} {2} [built]
|
||||
|
|
@ -14,7 +14,7 @@ Child
|
|||
[9] ./second.js 177 bytes {4} [built]
|
||||
[10] ./lazy_second.js 55 bytes {1} [built]
|
||||
Child
|
||||
Hash: ac95f6addf9bb1d962a3
|
||||
Hash: 658ab07cd2982e743929
|
||||
Time: Xms
|
||||
[0] ./common_lazy_shared.js 25 bytes {0} {1} {2} [built]
|
||||
[1] ./vendor.js 25 bytes {5} [built]
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Hash: b584cac33dcb8d5e4aed9dcac735d940c7d4c5dc
|
||||
Hash: aa1b352e571b0ba5e7f5d37c33df2ddf3d79c4f9
|
||||
Child
|
||||
Hash: b584cac33dcb8d5e4aed
|
||||
Hash: aa1b352e571b0ba5e7f5
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
d6c1b876fc64139d8324.js 2.74 KiB 0 [emitted] main
|
||||
|
|
@ -15,7 +15,7 @@ Child
|
|||
[0] (webpack)/node_modules/css-loader!./a/file.css 199 bytes {0} [built]
|
||||
[1] (webpack)/node_modules/css-loader/lib/css-base.js 2.21 KiB {0} [built]
|
||||
Child
|
||||
Hash: 9dcac735d940c7d4c5dc
|
||||
Hash: d37c33df2ddf3d79c4f9
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
d6c1b876fc64139d8324.js 2.74 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 0e0e2911fbf1998bcee2
|
||||
Hash: e9d1bffdef1d29b98a2b
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.6 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: 1021800667e51386395b
|
||||
Hash: d6a9c7976d858b3be90d
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.88 KiB main [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: e757ae6deb2207018ba1
|
||||
Hash: 49e821941ea65a02bbc9
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 7.26 KiB 0 [emitted] main
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Hash: c31972007fbc9e1916a0
|
||||
Hash: f6eb3b161149e35ef9e6
|
||||
Time: Xms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 2.19 KiB 0 [emitted] main
|
||||
|
|
|
|||
Loading…
Reference in New Issue