From 1f340a0d2fd2e71380427988dcfe44239a20e148 Mon Sep 17 00:00:00 2001 From: Axel Meinhardt Date: Tue, 18 Dec 2018 23:01:30 +0100 Subject: [PATCH] fix(ie compat): include polyfill for currentScript directly Signed-off-by: Axel Meinhardt --- .../lib/commands/build/setPublicPath.js | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/@vue/cli-service/lib/commands/build/setPublicPath.js b/packages/@vue/cli-service/lib/commands/build/setPublicPath.js index 6efcb2fc03..7090ad2453 100644 --- a/packages/@vue/cli-service/lib/commands/build/setPublicPath.js +++ b/packages/@vue/cli-service/lib/commands/build/setPublicPath.js @@ -1,9 +1,25 @@ // This file is imported into lib/wc client bundles. if (typeof window !== 'undefined') { + var currentScript = window.document.currentScript; + if(!currentScript) { + // IE compat + try { + throw new Error(); + } catch(err) { + var scripts = document.getElementsByTagName('script'), + res = ((/.*at [^(]*\((.*):.+:.+\)$/ig).exec(err.stack) || [false])[1]; + for(i in scripts) { + if(scripts[i].src === res || scripts[i].readyState === 'interactive') { + currentScript = scripts[i]; // eslint-disable-line + break; + } + } + } + } var i - if ((i = window.document.currentScript) && (i = i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))) { - __webpack_public_path__ = i[1] // eslint-disable-line + if (i = currentScript.src.match(/(.+\/)[^/]+\.js(\?.*)?$/)) { + __webpack_require__.p = i[1] // eslint-disable-line } }