Browserify与@google/earthengine:将JavaScript模块化的地理空间数据访问和分析打包成浏览器可用的文件
P粉208469050
P粉208469050 2023-08-15 17:45:55
[JavaScript讨论组]

我正在尝试使用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文件,但它仍然无法工作。

P粉208469050
P粉208469050

全部回复(1)
P粉545218185

我猜浏览器会对代码进行压缩,并更改函数名。

MDOutSystems()之后就无法识别了。

将你的方法附加到window对象上。

像这样:

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

window.MDOutSystems = MDOutSystems;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号