suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Browserify und @google/earthengine: Packen des modularen Zugriffs und der Analyse von JavaScript-Geodaten in browserfähige Dateien

<p>Ich versuche, Browserify zu verwenden, um die Javascript-API von Google Earth Engine zu importieren. </p> <p>Ich habe dieses Modul installiert: </p> <pre class="brush:php;toolbar:false;">npm install --save-dev @google/earthengine</pre> <p>Ich habe zu Testzwecken eine neue main.js-Datei erstellt: </p> <pre class="brush:php;toolbar:false;">var md = require('@google/earthengine'); module.exports = MDOutSystems; Funktion MDOutSystems() { this.mdInstance = md; }; MDOutSystems.prototype.data.authenticateViaPrivateKey = function( privateKey, opt_success, opt_error, opt_extraScopes, opt_suppressDefaultScopes) { md.data.authenticateViaPrivateKey(privateKey, opt_success, opt_error, opt_extraScopes, opt_suppressDefaultScopes); }; MDOutSystems.prototype.initialize = function() { md.initialize(); }; MDOutSystems.prototype.Image = function(source) { md.Image(Quelle); }; MDOutSystems.prototype.getInstance = function () { return this.mdInstance; }</pre> <p>(Ich habe eine Warnung erhalten, dass ich eine d.ts-Datei mit <code>declare module '@google/earthengine'</code> erstellen muss)</p> <p>Ich verwende den folgenden Code, um das von mir erstellte Modul verfügbar zu machen: </p> <pre class="brush:php;toolbar:false;">Browserify main.js --standalone MDOutSystems > <p>Wenn ich jedoch versuche, </p> <pre class="brush:php;toolbar:false;">var ee = new MDOutSystems();</pre> <p>Ich erhalte die Fehlermeldung „MDOutSystems ist nicht definiert“. </p> <p>Hilfe. </p> <p>Ich habe versucht, main.js in den Ordner /node_modules zu verschieben und den Befehl browserify erneut auszuführen. Dies führte tatsächlich zu einer völlig anderen Datei google-earth-outsystems.js, funktionierte aber immer noch nicht. </p>
P粉208469050P粉208469050477 Tage vor530

Antworte allen(1)Ich werde antworten

  • P粉545218185

    P粉5452181852023-08-16 00:24:47

    我猜浏览器会对代码进行压缩,并更改函数名。

    MDOutSystems()之后就无法识别了。

    将你的方法附加到window对象上。

    像这样:

    function MDOutSystems() {
      this.mdInstance = md;
    };
    
    window.MDOutSystems = MDOutSystems;

    Antwort
    0
  • StornierenAntwort