是什么

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. TiDB之mac上搭建及调试技巧

    此文目的 由于本人最近已经成为TiDB的粉丝,所以就开始各种研究TiDB的源码,研究源码这个事情,首先就需要在自己电脑上不断的调试及修改.TiDB本身的代码是非常容易编译和调试的,但是要把PD.TiK ...

  2. 在 EFCore 定义的实体中进行 FreeSql 开发

    EFCore 和 FreeSql 都是 ORM,在各自领域都有着独特的优势. 问题起源 假设某项目是使用 EFCore 开发的,且实体 特性或FluentApi 都配置好了,如: protected ...

  3. HighChar 案例

    Highchars //前台 <script> $(function () { //showChat(); initChat(); showPie(); initPie(); }) fun ...

  4. java_反射

    反射:reflect   成员属性:Field  成员方法:Method 构造方法:Constructor  类:Class 引用,援引:invoke   新实例:newInstance  Decla ...

  5. 基于Servlet+jsp的web计算器

    基于Servlet+jsp的web计算器 这次老大为了让我们自己复习web中页面的跳转给布置得任务 天下代码一大抄,关键看你怎么抄 首先我想到的计算算法不是什么堆栈,是简单的(其实很复杂,但是我就只需 ...

  6. 企业自主可控免费开源ERP:Odoo采购管理解决方案

    供应商基础资料 1. 所有的供应商基础资料,Odoo开账启用时,期初的客户数据如果大于200条,可以批量导入: 2. 点“采购/采购/供应商”菜单可以查看.编辑修改.搜索所有的供应商基础资料: 3. ...

  7. geopyspark入门

    背景     对于GIS的大数据量实时数据分析和渲染的需求,ArcGIS Server和Geoserver.普通空间数据库往往难以满足,对此我一直感觉很沮丧.这时就要寻求大数据的分布式框架帮助.(Ar ...

  8. idea解决Maven jar依赖冲突(四)

    首先点击右侧的MavenProjects打开以下界面: 这个界面是maven的命令界面: 点击这个图标会进入如下界面: 左上角可以缩放,点击线可以取消冲突依赖,红色线为冲突依赖. 上图为无依赖冲突的s ...

  9. Redis的知识点总结~Linux系统操作~

    Redis_启动后杂项基础 Redis一共16个数据库 SELECT[0~15] 来切换数据库 命令起效返回1 不起效返回0 或者nil 或者error 异常... DBSIZE 查询数据的数 KEY ...

  10. Java Thread.join的作用和原理

    很多人对Thread.join的作用以及实现了解得很少,毕竟这个api我们很少使用.这篇文章仍然会结合使用及原理进行深度分析 内容导航 Thread.join的作用 Thread.join的实现原理 ...