我正在尝试使用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文件,但它仍然无法工作。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我猜浏览器会对代码进行压缩,并更改函数名。
MDOutSystems()之后就无法识别了。将你的方法附加到
window对象上。像这样:
function MDOutSystems() { this.mdInstance = md; }; window.MDOutSystems = MDOutSystems;