diff --git a/src/vs/code/electron-browser/issue/issueReporter.js b/src/vs/code/electron-browser/issue/issueReporter.js index 47369aabee6..423dbe75a1c 100644 --- a/src/vs/code/electron-browser/issue/issueReporter.js +++ b/src/vs/code/electron-browser/issue/issueReporter.js @@ -19,15 +19,6 @@ function parseURLQueryArgs() { .reduce(function (r, param) { r[param[0]] = decodeURIComponent(param[1]); return r; }, {}); } -function createScript(src, onload) { - const script = document.createElement('script'); - script.src = src; - script.addEventListener('load', onload); - - const head = document.getElementsByTagName('head')[0]; - head.insertBefore(script, head.lastChild); -} - function uriFromPath(_path) { var pathName = path.resolve(_path).replace(/\\/g, '/'); if (pathName.length > 0 && pathName.charAt(0) !== '/') { @@ -143,31 +134,34 @@ function main() { window.document.documentElement.setAttribute('lang', locale); - // In the bundled version the nls plugin is packaged with the loader so the NLS Plugins - // loads as soon as the loader loads. To be able to have pseudo translation - createScript(rootUrl + '/vs/loader.js', function () { - var define = global.define; - global.define = undefined; - define('fs', ['original-fs'], function (originalFS) { return originalFS; }); // replace the patched electron fs with the original node fs for all AMD code + // Load the loader + const loaderFilename = configuration.appRoot + '/out/vs/loader.js'; + const loaderSource = fs.readFileSync(loaderFilename); + require('vm').runInThisContext(loaderSource, { filename: loaderFilename }); + var define = global.define; + global.define = undefined; - window.MonacoEnvironment = {}; + window.nodeRequire = require.__$__nodeRequire; - require.config({ - baseUrl: rootUrl, - 'vs/nls': nlsConfig, - nodeCachedDataDir: configuration.nodeCachedDataDir, - nodeModules: [/*BUILD->INSERT_NODE_MODULES*/] + define('fs', ['original-fs'], function (originalFS) { return originalFS; }); // replace the patched electron fs with the original node fs for all AMD code + + window.MonacoEnvironment = {}; + + require.config({ + baseUrl: rootUrl, + 'vs/nls': nlsConfig, + nodeCachedDataDir: configuration.nodeCachedDataDir, + nodeModules: [/*BUILD->INSERT_NODE_MODULES*/] + }); + + if (nlsConfig.pseudo) { + require(['vs/nls'], function (nlsPlugin) { + nlsPlugin.setPseudoTranslation(nlsConfig.pseudo); }); + } - if (nlsConfig.pseudo) { - require(['vs/nls'], function (nlsPlugin) { - nlsPlugin.setPseudoTranslation(nlsConfig.pseudo); - }); - } - - require(['vs/code/electron-browser/issue/issueReporterMain'], (issueReporter) => { - issueReporter.startup(configuration); - }); + require(['vs/code/electron-browser/issue/issueReporterMain'], (issueReporter) => { + issueReporter.startup(configuration); }); }