UNPKG

@anansi/webpack-config

Version:
61 lines (58 loc) 7.67 kB
"use strict"; exports.__esModule = true; exports.default = void 0; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of https://github.com/facebook/create-react-app/blob/master/packages/react-dev-utils/InlineChunkHtmlPlugin.js. */ class InlineChunkHtmlPlugin { constructor(htmlWebpackPlugin, tests) { this.htmlWebpackPlugin = htmlWebpackPlugin; this.tests = tests; } getInlinedTag(publicPath, assets, tag) { if (tag.tagName !== 'script' || !(tag.attributes && tag.attributes.src)) { return tag; } const scriptName = publicPath ? tag.attributes.src.replace(publicPath, '') : tag.attributes.src; if (!this.tests.some(test => scriptName.match(test))) { return tag; } const asset = assets[scriptName]; if (asset == null) { return tag; } return { tagName: 'script', innerHTML: asset.source(), closeTag: true }; } apply(compiler) { let publicPath = compiler.options.output.publicPath || ''; if (publicPath && !publicPath.endsWith('/')) { publicPath += '/'; } compiler.hooks.compilation.tap('InlineChunkHtmlPlugin', compilation => { const tagFunction = tag => this.getInlinedTag(publicPath, compilation.assets, tag); const hooks = this.htmlWebpackPlugin.getHooks(compilation); hooks.alterAssetTagGroups.tap('InlineChunkHtmlPlugin', assets => { assets.headTags = assets.headTags.map(tagFunction); assets.bodyTags = assets.bodyTags.map(tagFunction); }); // Still emit the runtime chunk for users who do not use our generated // index.html file. // hooks.afterEmit.tap('InlineChunkHtmlPlugin', () => { // Object.keys(compilation.assets).forEach(assetName => { // if (this.tests.some(test => assetName.match(test))) { // delete compilation.assets[assetName]; // } // }); // }); }); } } exports.default = InlineChunkHtmlPlugin; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJbmxpbmVDaHVua0h0bWxQbHVnaW4iLCJjb25zdHJ1Y3RvciIsImh0bWxXZWJwYWNrUGx1Z2luIiwidGVzdHMiLCJnZXRJbmxpbmVkVGFnIiwicHVibGljUGF0aCIsImFzc2V0cyIsInRhZyIsInRhZ05hbWUiLCJhdHRyaWJ1dGVzIiwic3JjIiwic2NyaXB0TmFtZSIsInJlcGxhY2UiLCJzb21lIiwidGVzdCIsIm1hdGNoIiwiYXNzZXQiLCJpbm5lckhUTUwiLCJzb3VyY2UiLCJjbG9zZVRhZyIsImFwcGx5IiwiY29tcGlsZXIiLCJvcHRpb25zIiwib3V0cHV0IiwiZW5kc1dpdGgiLCJob29rcyIsImNvbXBpbGF0aW9uIiwidGFwIiwidGFnRnVuY3Rpb24iLCJnZXRIb29rcyIsImFsdGVyQXNzZXRUYWdHcm91cHMiLCJoZWFkVGFncyIsIm1hcCIsImJvZHlUYWdzIiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcGx1Z2lucy9JbmxpbmVDaHVua0h0bWxQbHVnaW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTUtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2NyZWF0ZS1yZWFjdC1hcHAvYmxvYi9tYXN0ZXIvcGFja2FnZXMvcmVhY3QtZGV2LXV0aWxzL0lubGluZUNodW5rSHRtbFBsdWdpbi5qcy5cbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJbmxpbmVDaHVua0h0bWxQbHVnaW4ge1xuICBjb25zdHJ1Y3RvcihodG1sV2VicGFja1BsdWdpbiwgdGVzdHMpIHtcbiAgICB0aGlzLmh0bWxXZWJwYWNrUGx1Z2luID0gaHRtbFdlYnBhY2tQbHVnaW47XG4gICAgdGhpcy50ZXN0cyA9IHRlc3RzO1xuICB9XG5cbiAgZ2V0SW5saW5lZFRhZyhwdWJsaWNQYXRoLCBhc3NldHMsIHRhZykge1xuICAgIGlmICh0YWcudGFnTmFtZSAhPT0gJ3NjcmlwdCcgfHwgISh0YWcuYXR0cmlidXRlcyAmJiB0YWcuYXR0cmlidXRlcy5zcmMpKSB7XG4gICAgICByZXR1cm4gdGFnO1xuICAgIH1cbiAgICBjb25zdCBzY3JpcHROYW1lID1cbiAgICAgIHB1YmxpY1BhdGggP1xuICAgICAgICB0YWcuYXR0cmlidXRlcy5zcmMucmVwbGFjZShwdWJsaWNQYXRoLCAnJylcbiAgICAgIDogdGFnLmF0dHJpYnV0ZXMuc3JjO1xuICAgIGlmICghdGhpcy50ZXN0cy5zb21lKHRlc3QgPT4gc2NyaXB0TmFtZS5tYXRjaCh0ZXN0KSkpIHtcbiAgICAgIHJldHVybiB0YWc7XG4gICAgfVxuICAgIGNvbnN0IGFzc2V0ID0gYXNzZXRzW3NjcmlwdE5hbWVdO1xuICAgIGlmIChhc3NldCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGFnO1xuICAgIH1cbiAgICByZXR1cm4geyB0YWdOYW1lOiAnc2NyaXB0JywgaW5uZXJIVE1MOiBhc3NldC5zb3VyY2UoKSwgY2xvc2VUYWc6IHRydWUgfTtcbiAgfVxuXG4gIGFwcGx5KGNvbXBpbGVyKSB7XG4gICAgbGV0IHB1YmxpY1BhdGggPSBjb21waWxlci5vcHRpb25zLm91dHB1dC5wdWJsaWNQYXRoIHx8ICcnO1xuICAgIGlmIChwdWJsaWNQYXRoICYmICFwdWJsaWNQYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIHB1YmxpY1BhdGggKz0gJy8nO1xuICAgIH1cblxuICAgIGNvbXBpbGVyLmhvb2tzLmNvbXBpbGF0aW9uLnRhcCgnSW5saW5lQ2h1bmtIdG1sUGx1Z2luJywgY29tcGlsYXRpb24gPT4ge1xuICAgICAgY29uc3QgdGFnRnVuY3Rpb24gPSB0YWcgPT5cbiAgICAgICAgdGhpcy5nZXRJbmxpbmVkVGFnKHB1YmxpY1BhdGgsIGNvbXBpbGF0aW9uLmFzc2V0cywgdGFnKTtcblxuICAgICAgY29uc3QgaG9va3MgPSB0aGlzLmh0bWxXZWJwYWNrUGx1Z2luLmdldEhvb2tzKGNvbXBpbGF0aW9uKTtcbiAgICAgIGhvb2tzLmFsdGVyQXNzZXRUYWdHcm91cHMudGFwKCdJbmxpbmVDaHVua0h0bWxQbHVnaW4nLCBhc3NldHMgPT4ge1xuICAgICAgICBhc3NldHMuaGVhZFRhZ3MgPSBhc3NldHMuaGVhZFRhZ3MubWFwKHRhZ0Z1bmN0aW9uKTtcbiAgICAgICAgYXNzZXRzLmJvZHlUYWdzID0gYXNzZXRzLmJvZHlUYWdzLm1hcCh0YWdGdW5jdGlvbik7XG4gICAgICB9KTtcblxuICAgICAgLy8gU3RpbGwgZW1pdCB0aGUgcnVudGltZSBjaHVuayBmb3IgdXNlcnMgd2hvIGRvIG5vdCB1c2Ugb3VyIGdlbmVyYXRlZFxuICAgICAgLy8gaW5kZXguaHRtbCBmaWxlLlxuICAgICAgLy8gaG9va3MuYWZ0ZXJFbWl0LnRhcCgnSW5saW5lQ2h1bmtIdG1sUGx1Z2luJywgKCkgPT4ge1xuICAgICAgLy8gICBPYmplY3Qua2V5cyhjb21waWxhdGlvbi5hc3NldHMpLmZvckVhY2goYXNzZXROYW1lID0+IHtcbiAgICAgIC8vICAgICBpZiAodGhpcy50ZXN0cy5zb21lKHRlc3QgPT4gYXNzZXROYW1lLm1hdGNoKHRlc3QpKSkge1xuICAgICAgLy8gICAgICAgZGVsZXRlIGNvbXBpbGF0aW9uLmFzc2V0c1thc3NldE5hbWVdO1xuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgfSk7XG4gICAgICAvLyB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVlLE1BQU1BLHFCQUFxQixDQUFDO0VBQ3pDQyxXQUFXQSxDQUFDQyxpQkFBaUIsRUFBRUMsS0FBSyxFQUFFO0lBQ3BDLElBQUksQ0FBQ0QsaUJBQWlCLEdBQUdBLGlCQUFpQjtJQUMxQyxJQUFJLENBQUNDLEtBQUssR0FBR0EsS0FBSztFQUNwQjtFQUVBQyxhQUFhQSxDQUFDQyxVQUFVLEVBQUVDLE1BQU0sRUFBRUMsR0FBRyxFQUFFO0lBQ3JDLElBQUlBLEdBQUcsQ0FBQ0MsT0FBTyxLQUFLLFFBQVEsSUFBSSxFQUFFRCxHQUFHLENBQUNFLFVBQVUsSUFBSUYsR0FBRyxDQUFDRSxVQUFVLENBQUNDLEdBQUcsQ0FBQyxFQUFFO01BQ3ZFLE9BQU9ILEdBQUc7SUFDWjtJQUNBLE1BQU1JLFVBQVUsR0FDZE4sVUFBVSxHQUNSRSxHQUFHLENBQUNFLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDRSxPQUFPLENBQUNQLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FDMUNFLEdBQUcsQ0FBQ0UsVUFBVSxDQUFDQyxHQUFHO0lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUNQLEtBQUssQ0FBQ1UsSUFBSSxDQUFDQyxJQUFJLElBQUlILFVBQVUsQ0FBQ0ksS0FBSyxDQUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFO01BQ3BELE9BQU9QLEdBQUc7SUFDWjtJQUNBLE1BQU1TLEtBQUssR0FBR1YsTUFBTSxDQUFDSyxVQUFVLENBQUM7SUFDaEMsSUFBSUssS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPVCxHQUFHO0lBQ1o7SUFDQSxPQUFPO01BQUVDLE9BQU8sRUFBRSxRQUFRO01BQUVTLFNBQVMsRUFBRUQsS0FBSyxDQUFDRSxNQUFNLENBQUMsQ0FBQztNQUFFQyxRQUFRLEVBQUU7SUFBSyxDQUFDO0VBQ3pFO0VBRUFDLEtBQUtBLENBQUNDLFFBQVEsRUFBRTtJQUNkLElBQUloQixVQUFVLEdBQUdnQixRQUFRLENBQUNDLE9BQU8sQ0FBQ0MsTUFBTSxDQUFDbEIsVUFBVSxJQUFJLEVBQUU7SUFDekQsSUFBSUEsVUFBVSxJQUFJLENBQUNBLFVBQVUsQ0FBQ21CLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtNQUMzQ25CLFVBQVUsSUFBSSxHQUFHO0lBQ25CO0lBRUFnQixRQUFRLENBQUNJLEtBQUssQ0FBQ0MsV0FBVyxDQUFDQyxHQUFHLENBQUMsdUJBQXVCLEVBQUVELFdBQVcsSUFBSTtNQUNyRSxNQUFNRSxXQUFXLEdBQUdyQixHQUFHLElBQ3JCLElBQUksQ0FBQ0gsYUFBYSxDQUFDQyxVQUFVLEVBQUVxQixXQUFXLENBQUNwQixNQUFNLEVBQUVDLEdBQUcsQ0FBQztNQUV6RCxNQUFNa0IsS0FBSyxHQUFHLElBQUksQ0FBQ3ZCLGlCQUFpQixDQUFDMkIsUUFBUSxDQUFDSCxXQUFXLENBQUM7TUFDMURELEtBQUssQ0FBQ0ssbUJBQW1CLENBQUNILEdBQUcsQ0FBQyx1QkFBdUIsRUFBRXJCLE1BQU0sSUFBSTtRQUMvREEsTUFBTSxDQUFDeUIsUUFBUSxHQUFHekIsTUFBTSxDQUFDeUIsUUFBUSxDQUFDQyxHQUFHLENBQUNKLFdBQVcsQ0FBQztRQUNsRHRCLE1BQU0sQ0FBQzJCLFFBQVEsR0FBRzNCLE1BQU0sQ0FBQzJCLFFBQVEsQ0FBQ0QsR0FBRyxDQUFDSixXQUFXLENBQUM7TUFDcEQsQ0FBQyxDQUFDOztNQUVGO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtJQUNGLENBQUMsQ0FBQztFQUNKO0FBQ0Y7QUFBQ00sT0FBQSxDQUFBQyxPQUFBLEdBQUFuQyxxQkFBQSIsImlnbm9yZUxpc3QiOltdfQ==