microsoft / vscode-loader

An universal Asynchronous Module Definition (AMD) Loader developed primarily to load VSCode's sources.
Other
169 stars 55 forks source link

Use vscode-loader with remote content in Electron #12

Open paul-marechal opened 6 years ago

paul-marechal commented 6 years ago

We are currently working on an application running in Electron using the monaco-editor, but some use case requires the displayed Electron content to come from a remote server (over http/s).

Problem is, the loader seems to get lost, as it assumes the environment is Node, yet the resources should be fetched from a remote server.

Did you ever encountered such an issue ? What would be our options here ?

I am thinking about trying to trick the loader into detecting a browser environment, though I am not sure I will be able to do this.


Extra infos: The loader works when the application is running in a browser, but once used within electron the loader gets lost.

paul-marechal commented 6 years ago

Resolved by modifying the prototype of AMDLoader.Environment so that isNode always return false when the electron-browser window is displaying http(s) content.

        if (isHttp) {
            Object.defineProperty(window.AMDLoader.Environment.prototype, 'isNode', {
                get: () => false
            });
        }

But I feel like this is not the best way to fix the issue.