搜尋

首頁  >  問答  >  主體

Browserify與@google/earthengine:將JavaScript模組化的地理空間資料存取與分析打包成瀏覽器可用的文件

<p>我正在嘗試使用Browserify來導入Google Earth Engine的Javascript API。 </p> <p>我已經安裝了這個模組:</p> <pre class="brush:php;toolbar:false;">npm install --save-dev @google/earthengine</pre> <p>我為測試目的建立了一個新的main.js檔案:</p> <pre class="brush:php;toolbar:false;">var md = require('@google/earthengine'); module.exports = MDOutSystems; function 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(source); }; MDOutSystems.prototype.getInstance = function () { return this.mdInstance; }</pre> <p>(我收到一個警告,需要建立一個帶有<code>declare module '@google/earthengine'</code>的d.ts檔案)</p> <p>我使用以下程式碼來揭露我創建的模組:</p> <pre class="brush:php;toolbar:false;">Browserify main.js --standalone MDOutSystems > google-earth-outsystems.js</pre> <p>然而,當我嘗試呼叫</p> <pre class="brush:php;toolbar:false;">var ee = new MDOutSystems();</pre> <p>我收到一個錯誤,說「MDOutSystems未定義」。 </p> <p>幫忙。 </p> <p>我嘗試將main.js移到/node_modules資料夾中,並再次執行browserify命令。實際上,這導致了一個完全不同的google-earth-outsystems.js文件,但它仍然無法運作。 </p>
P粉208469050P粉208469050477 天前531

全部回覆(1)我來回復

  • P粉545218185

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

    我猜瀏覽器會對程式碼進行壓縮,並更改函數名稱。

    MDOutSystems()之後就無法辨識了。

    將你的方法附加到window物件上。

    像這樣:

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

    回覆
    0
  • 取消回覆