chushihua
This commit is contained in:
+39
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
const DepBlockHelpers = exports;
|
||||
|
||||
DepBlockHelpers.getLoadDepBlockWrapper = (depBlock, outputOptions, requestShortener, name) => {
|
||||
const promiseCode = DepBlockHelpers.getDepBlockPromise(depBlock, outputOptions, requestShortener, name);
|
||||
return [
|
||||
promiseCode + ".then(",
|
||||
").catch(",
|
||||
")"
|
||||
];
|
||||
};
|
||||
|
||||
DepBlockHelpers.getDepBlockPromise = (depBlock, outputOptions, requestShortener, name) => {
|
||||
if(depBlock.chunks) {
|
||||
const chunks = depBlock.chunks.filter(chunk => !chunk.hasRuntime() && chunk.id !== null);
|
||||
const pathChunkCheck = outputOptions.pathinfo && depBlock.chunkName;
|
||||
const shortChunkName = requestShortener.shorten(depBlock.chunkName);
|
||||
const chunkReason = asComment(depBlock.chunkReason);
|
||||
const requireChunkId = chunk => "__webpack_require__.e(" + JSON.stringify(chunk.id) + ")";
|
||||
name = asComment(name);
|
||||
if(chunks.length === 1) {
|
||||
const chunkId = JSON.stringify(chunks[0].id);
|
||||
return `__webpack_require__.e${name}(${chunkId}${pathChunkCheck ? "/*! " + shortChunkName + " */" : ""}${chunkReason})`;
|
||||
} else if(chunks.length > 0) {
|
||||
return `Promise.all${name}(${pathChunkCheck ? "/*! " + shortChunkName + " */" : ""}[${chunks.map(requireChunkId).join(", ")}])`;
|
||||
}
|
||||
}
|
||||
return "new Promise(function(resolve) { resolve(); })";
|
||||
};
|
||||
|
||||
function asComment(str) {
|
||||
if(!str) return "";
|
||||
return `/* ${str} */`;
|
||||
}
|
||||
Reference in New Issue
Block a user