我正在嘗試使用Browserify來導入Google Earth Engine的Javascript API。
我已經安裝了這個模組:
npm install --save-dev @google/earthengine
我為測試目的建立了一個新的main.js檔案:
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; }
(我收到一個警告,需要建立一個帶有declare module '@google/earthengine'
的d.ts檔案)
我使用以下程式碼來揭露我創建的模組:
Browserify main.js --standalone MDOutSystems > google-earth-outsystems.js
然而,當我嘗試呼叫
var ee = new MDOutSystems();
我收到一個錯誤,說「MDOutSystems未定義」。
幫忙。
我嘗試將main.js移到/node_modules資料夾中,並再次執行browserify命令。實際上,這導致了一個完全不同的google-earth-outsystems.js文件,但它仍然無法運作。
我猜瀏覽器會對程式碼進行壓縮,並更改函數名稱。
MDOutSystems()
之後就無法辨識了。將你的方法附加到
window
物件上。像這樣: