【esri-loader】帮助文档翻译 part1 是什么,怎么安装,为什么要用它
是什么
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 是什么,怎么安装,为什么要用它的更多相关文章
- SVN操作手册(part1&part2)——SVN安装
SVN操作手册 1.关于SVN 有一个简单但不十分精确比喻: SVN = 版本控制 + 备份服务器 简单的说,您可以把SVN当成您的备份服务器,更好的是,他可以帮您记住每次上传到这个服务器的档案内容. ...
- React文档翻译系列(一)安装
原文地址:原文 本系列是针对React文档进行的翻译,因为自己在学习react的时候,最开始通过看博客或者论坛等中文资料,有些内容是零零散散的接收,并没有给自己带来很好的效果,所以后来决定把文档的原文 ...
- Webpack 之 Loader 的使用
安装 loaders 如果loader在npm里,可以这样安装: $ npm install xxx-loader --save 或者 $ npm install xxx-loader --save- ...
- Linux(centos)如何安装Zend Optimizer Zend Guard Loader
很多php开源系统都是基于Zend Optimizer的,所以我们需要先安装Zend Optimizer.但在php5.3之后Zend Optimizer被Zend Guard Loader 取代了, ...
- boot loader:grub入门[转]
Boot Loader: Grub 在看完了前面的整个启动流程,以及核心模块的整理之后,你应该会发现到一件事情, 那就是『 boot loader 是加载核心的重要工具』啊!没有 boot loade ...
- 嵌入式系统 Boot Loader 技术内幕
转载:http://www.ibm.com/developerworks/cn/linux/l-btloader/index.html 1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统 ...
- 第二十章、启动流程、模块管理与 Loader grub
Boot Loader: Grub 『 boot loader 是加载核心的重要工具』!没有 boot loader 的话,那么 kernel 根本就没有办法被系统加载! boot loader 的两 ...
- 鸟哥的linux私房菜——第20章 启动流程、模块管理与loader
20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以 ...
- 【转】嵌入式系统 Boot Loader 技术内幕,带你完全了解Boot Loader
在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行.一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序.包括固化在固件(firmware)中的 boo ...
随机推荐
- asp.net core系列 55 IS4结合Identity密码保护API
一.概述 OAuth 2.资源所有者密码授权允许客户端(Client项目)向令牌服务(IdentityServer项目)发送用户名和密码,并获取代表该用户的访问令牌.本篇将IS4结合asp.net c ...
- 『取巧』VS2015试用期过后 继续试用
背景: 个人电脑 安装的 VS2015 Community 社区版. 一直用得挺好,都忘了要登录. 直到近来,30天试用期过 —— VS弹窗:要登录用户名.密码 才能继续使用. 但是,输入了无数次 邮 ...
- 在 EFCore 定义的实体中进行 FreeSql 开发
EFCore 和 FreeSql 都是 ORM,在各自领域都有着独特的优势. 问题起源 假设某项目是使用 EFCore 开发的,且实体 特性或FluentApi 都配置好了,如: protected ...
- Git常用命令及软件推荐
查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id gi ...
- wGenerator代码生成工具
由来 以前一直用window系列的操作系统,有不少可以用的代码生成工具,如:动软的代码生成器(.net),可以自定义模板,然后按需生成代码.后来用mac系统,发现好像没有什么太好用的生成工具,所以自己 ...
- C语言超级搞笑的代码,冷笑话我们程序员也会讲的啊!
百年修得足下点击本文 欢迎来到"C语言基础"专题,今天我们放松一天,不学习知识,来看下大千世界的千奇百怪的C语言代码,你见过那些? 1.关于随机数这回事 这个随机数有点意思哦. 2 ...
- CI持续集成系列之(九)代码发布脚本模板书写
前言 前面我们介绍了Jenkins来发布项目通过nginx来展示流程,那里只是提供了一个简单的测试脚本,接下来呢介绍一下一个比较完善的发布脚本,该脚本可实现从gitlab服务器获取代码,打包,部署到W ...
- 项目升级-oracle改版sql server问题点汇总
目录 1.符号使用 1.1 :->@ 1.2 mod()->% 1.3 ||->+ 1.4 off等表别名 1.5 columnnum=1->top 1 1.6 minus-& ...
- Linux 桌面玩家指南:10. 没有 GUI 的时候应该怎么玩
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- 每日分享!~ JavaScript(拖拽事件)
浏览器的拖拉事件 拖拉(drag)指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里. 拖拉的对象有好几种,包括元素节点.图片.链接.选中的文字等等.在网页中 ...