Browserify und @google/earthengine: Packen des modularen Zugriffs und der Analyse von JavaScript-Geodaten in browserfähige Dateien
P粉208469050
2023-08-15 17:45:55
<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>
我猜浏览器会对代码进行压缩,并更改函数名。
MDOutSystems()
之后就无法识别了。将你的方法附加到
window
对象上。像这样: