ウェブサイト検索

javascript - Electron と Systemjs でノードモジュールをインポートする


もし systemjs が自分のレジストリでモジュールを見つけられない場合、systemjs が require("remote").require("nodemodule") を使用することが可能かどうか、ちょっと疑問に思いました。

私は、ElectronをTypeScriptやCommonJSモジュールと一緒に使用するときに、このような仕組みがすでに機能していると思います…

その問題をすでに誰かが解決しましたか?

回答 #1

ついにしばらくして、私は動作する解決策を見つけました:

var node_modules = ["child_process","fs"];
var fetch = System.fetch;
window.remote=require("remote");
System.fetch = function () {
    var promise= fetch.apply(System,arguments);
    return promise.then(function (js) {
        for(var m of node_modules){
            var requireExpression = 'require("'+m+'");';
            var remoteRequire = 'remote.require("'+m+'");'
            js=js.replace(requireExpression,remoteRequire);
        }
        return js;
    });
}
System.import("aurelia-bootstrapper");

インポートしたすべての node_modules を配列に追加するだけで、問題ありません

関連記事