Browserify與@google/earthengine:將JavaScript模組化的地理空間資料存取與分析打包成瀏覽器可用的文件
P粉208469050
P粉208469050 2023-08-15 17:45:55
0
1
523
<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粉208469050
P粉208469050

全部回覆(1)
P粉545218185

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

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

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

像這樣:

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

window.MDOutSystems = MDOutSystems;
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板