是什么

esri-loader是一个JavaScript库(包/模块,Web模块化编程的概念),用于在非Dojo框架的Web页面中加载ArcGIS API for JavaScript 3.x或4.x。

以上是esri-loader的定义。

如何安装

对当下热门的Web生态写法来说,你需要知道NodeJs和npm工具,它们把前端编程后端化了,把js文件拆分成各种模块,颇具面向对象的思想,而npm则能管理(增删改)这些模块,不需要自己更新js包,只需要一行代码就可以管理整个大型的Web项目。

esri-loader可以这样安装:

npm install esri-loader --save
//等价写法 npm i esri-loader -S
//等价写法 npm i esri-loader
//等价写法 npm install esri-loader

如果你用的包管理工具是yarn,则需要这样安装

yarn add esri-loader

注意!

如果前端框架用的是Ember或者AngularJs 1.x,那么esri-loader就不能用了,请使用另外的库:

为什么需要安装esri-loader?直接用Dojo框架不行吗?

事实上,Dojo 1.x官方自己都嫌弃了,早期版本乱七八糟。

Dojo 1.x不支持npm的管理机制,用的是bower包管理工具(Dojo 2.x终于支持npm了),Dojo那个库除了IBM和Esri,估计有名一些的公司都没怎么用了,NodeJS火是不争的事实,我觉得Esri迟早会重构WebAPI的。

以下是官方文档:

开发者不能用npm直接在项目里安装ArcGIS API for JavaScript 3.x 和4.x,也不能从非Dojo框架的页面中使用ArcGIS API for JavaScript 3.x/4.x,因为加载API的唯一方法是用Dojo的require异步模块加载器。在其他框架做的Web页面时,当然要遵循这个框架的规则和语法(例如Vue/React都有自己的语法),而不是继续用Dojo的语法和规则。

esri-loader就是这么一个ECMAScript库(包/模块),允许开发者在其他框架做的页面中导入一个ArcGIS API标签,然后用esri-loader内部的Dojo加载器来加载ArcGIS API的各种模块。

自己bb

说白了,Dojo和当下热门的一些前端框架水火不相容,也和当下热门的NodeJS及当下热门的包管理工具npm水火不相容。你非得想用其他框架,还得同时想用ArcGIS API for JavaScript,那行,Esri再次妥协了,开发了esri-loader。

在WebGIS的SDK上,Esri有多次妥协。早年ArcIMS不是普通人看一天半个月就入门了的,于是出现了ArcGIS API for Silverlight,和ArcGIS API for Flex,很不幸Silverlight和Flex已经大势所去,于是Esri就推出了基于JavaScript的API——3.x的时代开启了。后来那几年,前端生态骤变,NodeJS/npm的出现,Vue/React/AngularJS这些前端框架的火起,随之而来的是颠覆性的前端写法,这就让刚刚接触AMD和Dojo不久的人又懵逼了,更别提最传统的HTML/CSS/JS认为引用一个简单的js文件几个简单的css文件就走天下的前端了。

希望,在ArcGIS API for JavaScript 5.x有新的突破吧,否则真得转行做开源WebGIS了 QAQ 无奈的是3DGIS也只能Esri的产品做的最好...唉

========201904补充=======

可恶,Esri居然推出了esri-leaflet和arcgis-js-api这俩npm包,它再次妥协了...

【esri-loader】帮助文档翻译 part1 是什么,怎么安装,为什么要用它的更多相关文章

  1. SVN操作手册(part1&part2)——SVN安装

    SVN操作手册 1.关于SVN 有一个简单但不十分精确比喻: SVN = 版本控制 + 备份服务器 简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容. ...

  2. React文档翻译系列(一)安装

    原文地址:原文 本系列是针对React文档进行的翻译,因为自己在学习react的时候,最开始通过看博客或者论坛等中文资料,有些内容是零零散散的接收,并没有给自己带来很好的效果,所以后来决定把文档的原文 ...

  3. Webpack 之 Loader 的使用

    安装 loaders 如果loader在npm里,可以这样安装: $ npm install xxx-loader --save 或者 $ npm install xxx-loader --save- ...

  4. Linux(centos)如何安装Zend Optimizer Zend Guard Loader

    很多php开源系统都是基于Zend Optimizer的,所以我们需要先安装Zend Optimizer.但在php5.3之后Zend Optimizer被Zend Guard Loader 取代了, ...

  5. boot loader:grub入门[转]

    Boot Loader: Grub 在看完了前面的整个启动流程,以及核心模块的整理之后,你应该会发现到一件事情, 那就是『 boot loader 是加载核心的重要工具』啊!没有 boot loade ...

  6. 嵌入式系统 Boot Loader 技术内幕

    转载:http://www.ibm.com/developerworks/cn/linux/l-btloader/index.html   1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统 ...

  7. 第二十章、启动流程、模块管理与 Loader grub

    Boot Loader: Grub 『 boot loader 是加载核心的重要工具』!没有 boot loader 的话,那么 kernel 根本就没有办法被系统加载! boot loader 的两 ...

  8. 鸟哥的linux私房菜——第20章 启动流程、模块管理与loader

    20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以 ...

  9. 【转】嵌入式系统 Boot Loader 技术内幕,带你完全了解Boot Loader

    在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行.一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序.包括固化在固件(firmware)中的 boo ...

随机推荐

  1. 《前端之路》之 JavaScript 进阶技巧之高阶函数(下)

    目录 第二章 - 03: 前端 进阶技巧之高阶函数 一.防篡改对象 1-1:Configurable 和 Writable 1-2:Enumerable 1-3:get .set 2-1:不可扩展对象 ...

  2. 前端笔记之NodeJS(一)初识NodeJS&内置模块&特点

    一.NodeJS简介 NodeJS是开发服务器后台的东西,和PHP.JavaEE.python类似,和传统的浏览器的关注DOM的JS完全不同,将JavaScript触角伸到了服务器端.内核是Chrom ...

  3. vue 设计一个倒计时秒杀的组件

    简介: 倒计时秒杀组件在电商网站中层出不穷  不过思路万变不离其踪,我自己根据其他资料设计了一个vue版的 核心思路:1.时间不能是本地客户端的时间  必须是服务器的时间这里用一个settimeout ...

  4. 安卓开发笔记(十三):SQLite数据库储存(下)数据的增添,更改,删除,查询

      SQLite数据库存储(下) 1.增添数据 对于添加数据的话我们只需要在主活动当中import新的包以及在主活动当中写上适当的代码就可以了,不需要在我们之前创建新的类当中书写新的代码.现在的主活动 ...

  5. Android 上传图片到服务器二--------调用相机7.0以上权限问题

    [目录] (一)上传图片到服务器一 ---------------------------------Android代码 (二)上传图片到服务器二--------------------------- ...

  6. 2017-12-09 JavaScript实现ZLOGO子集: 测试用例

    续前文JavaScript实现ZLOGO子集: 前进+转向. 在添加新功能之前, 先添加测试用例, 以应对日益复杂的代码. 选择使用QUnit编写运行测试用例. 暂时对比较复杂和I/O无关的部分进行测 ...

  7. oracle nid修改dbname

    修改name的目的只是为了日后管理清晰点,不重复.我比较懒.记性又差,所以就整理记下1.检查当前nameSQL> show parameter nameNAME TYPE VALUE------ ...

  8. 一张图看懂 SQL 的各种 join 用法

    下图展示了 LEFT JOIN.RIGHT JOIN.INNER JOIN.OUTER JOIN 相关的 7 种用法.   具体分解如下: 1.INNER JOIN(内连接)     2.LEFT J ...

  9. spring Boot环境下dubbo+zookeeper的一个基础讲解与示例

    一,学习背景 1.   前言 对于我们不管工作还是生活中,需要或者想去学习一些东西的时候,大致都考虑几点: a)      我们为什么需要学习这个东西? b)     这个东西是什么? c)      ...

  10. Kubernetes初探[1]:部署你的第一个ASP.NET Core应用到k8s集群

    Kubernetes简介 Kubernetes是Google基于Borg开源的容器编排调度引擎,作为CNCF(Cloud Native Computing Foundation)最重要的组件之一,它的 ...