在4.7版本中,不仅增加了WebGL的渲染支持(渲染前端速度加快,渲染量也加大)、增强了ES6中的Promises语法支持,还支持了npm管理及webpack打包,实属喜讯。

“意味着可以不经过esri-loader这个包来引入JsAPI了——ArcGIS极客说”

//当前未完待续

1. 前言

如果你想本地组织起ArcGIS API for JavaScript项目,那么从4.7开始,就可以用npm这个当下火热的前端js包管理工具进行项目中的API管理了。

以前Esri是推荐用bower这个包管理工具的,现在推荐使用npm了,当然现在仍然能用bower,不过还是推荐用npm。

事先,你可能需要安装:

  • node.js
  • git
  • grunt
  • java 7或更高版本

事实上,你只需要安装node.js即可。其他三个可以根据需要安装。

当然,仍然可以使用IIS或Tomcat本地部署的方式进行开发,看工程需要。

2. 如何安装

一行代码

npm install arcgis-js-api --save

npm install arcgis-js-api

npm i arcgis-js-api

如果下载完成,node_modules文件夹内应该会出现这样的文件夹列表:

测试得出:最好结合VPN下载,npm墙比较高,下载较慢(本人实测大概510+s),而且下载的体积较大(130+MB),下下来的都是未经压缩的源码。

3. 配置

以下为配置dojoConfig的有关代码。

// create or use existing global dojoConfig
var dojoConfig = this.dojoConfig || {}; (function() {
var config = dojoConfig; // set default properties
if (!config.hasOwnProperty("async")) {
config.async = true;
} // add packages for libs that are not siblings to dojo
(function() {
var packages = config.packages || []; function addPkgIfNotPresent(newPackage) {
for (var i = 0; i < packages.length; i++) {
var pkg = packages[i];
if (pkg.name === newPackage.name) {
return;
}
} packages.push(newPackage);
}
addPkgIfNotPresent({
name: "app",
location: "./../../src/app"
});
addPkgIfNotPresent({
name: "esri",
location: "../arcgis-js-api"
});
addPkgIfNotPresent({
name: "@dojo",
location: "../@dojo"
});
addPkgIfNotPresent({
name: "cldrjs",
location: "../cldrjs",
main: "dist/cldr"
});
addPkgIfNotPresent({
name: "globalize",
location: "../globalize",
main: "dist/globalize"
});
addPkgIfNotPresent({
name: "maquette",
location: "../maquette",
main: "dist/maquette.umd"
});
addPkgIfNotPresent({
name: "maquette-css-transitions",
location: "../maquette-css-transitions",
main: "dist/maquette-css-transitions.umd"
});
addPkgIfNotPresent({
name: "maquette-jsx",
location: "../maquette-jsx",
main: "dist/maquette-jsx.umd"
});
addPkgIfNotPresent({
name: "tslib",
location: "../tslib",
main: "tslib"
}); config.packages = packages;
})(); // configure map.globalize
var map = config.map || {};
if (!map.globalize) {
map.globalize = {
"cldr": "cldrjs/dist/cldr",
"cldr/event": "cldrjs/dist/cldr/event",
"cldr/supplemental": "cldrjs/dist/cldr/supplemental",
"cldr/unresolved": "cldrjs/dist/cldr/unresolved"
};
config.map = map;
}
})();

配置dojoConfig

ArcGIS API for JavaScript与 npm的更多相关文章

  1. ArcGIS API for JavaScript 与 npm 之例子运行

    下载官方的demo,4.7的,在终端里跑了一下,测试成功(未打包) 在测试中精简掉了不需要的文件,使用http协议跑的(file协议不行哦) 最简单的目录如下: 我把以上文件放到一个叫demo的文件夹 ...

  2. 【1】ArcGIS API for JavaScript 4.5/4.6 本地部署

    惭愧,和我的学弟比起来,我所开始接触前端开发,ArcGIS API for JavaScript的时间和深度远远不及于他. 一年之尾,亦是一年之始,我也将正式开始我的博客生涯.本人在校学习并且做项目, ...

  3. ArcGIS API for JavaScript 入门教程[1] 渊源

    ->对于萌新,你可能需要了解一下这个东西是什么 ->对于已经知道要用这个东西的开发者,你可能需要了解一下它的底层机制 不针对大牛.龟速更新ing. 转载注明出处.博客园&CSDN& ...

  4. 基于ArcGIS API for Javascript的地图编辑工具

    最近工作上需要用ArcGIS API for Javascript来开发一个浏览器上使用的地图编辑工具,分享一下一些相关的开发经验. 我开发的地图编辑工具是根据ESRI提供的例子修改而来的,参考的例子 ...

  5. ArcGIS API for JavaScript(2)-ArcGIS Server发布要素图层服务

    1.前言 上一篇该系列的文章我们主要讲了一下基础Web地图搭建,这篇我们主要讲一下ArcGIS Server发布服务,并且如何调用服务.将自己的数据加载到Web地图当中来,实现Web端浏览数据. 2. ...

  6. ArcGIS API for JavaScript 4.0(一)

    原文:ArcGIS API for JavaScript 4.0(一) 最近ArcGIS推出了ArcGIS API for JavaScript 4.0,支持无插件3D显示,而且比较Unity和Sky ...

  7. ArcGIS API for JavaScript开发环境搭建及第一个实例demo

    原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3. ...

  8. 创建ArcGIS API for JavaScript的第一个示例程序

    原文:创建ArcGIS API for JavaScript的第一个示例程序 在上一篇博客中已经介绍了如何搭建ArcGIS API for JavaScript开发环境,如果您还没有搭建好开发环境的话 ...

  9. RequireJS加载ArcGIS API for JavaScript

    1.在main.js中配置ArcGIS API for JavaScript require.config({ paths : { //arcgisJS "esri": " ...

随机推荐

  1. 【重学计算机】操作系统D6章:并发程序设计

    1. 并发程序的基本概念 程序顺序性 内部顺序性:CPU严格按照顺序执行指令 外部顺序性:程序员设计程序时往往用顺序设计的思想 顺序程序特性 程序执行的顺序性 计算环境的封闭性: 程序执行时犹如独占资 ...

  2. 【纯技术贴】.NETStandard FreeSql v0.0.9 功能预览

    年关将至,首页技术含量文章真是越来越少,理解大家盼着放假过年,哥们我何尝不是,先给大家拜个早年. 兄弟我从11月底发了神经,开启了 ORM 功能库的开发之旅,历时两个月编码和文档整理,目前预览版本更新 ...

  3. Redis缓存穿透、缓存雪崩和缓存击穿理解

    1.缓存穿透(不存在的商品访问数据造成压力) 缓存穿透,是指查询一个数据库一定不存在的数据.正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并 ...

  4. wGenerator代码生成工具

    由来 以前一直用window系列的操作系统,有不少可以用的代码生成工具,如:动软的代码生成器(.net),可以自定义模板,然后按需生成代码.后来用mac系统,发现好像没有什么太好用的生成工具,所以自己 ...

  5. synchronized关键字简介 多线程中篇(十一)

    前面说过,Java对象都有与之关联的一个内部锁和监视器 内部锁是一种排它锁,能够保障原子性.可见性.有序性 从Java语言层面上说,内部锁使用synchronized关键字实现 synchronize ...

  6. SQL 横转竖 、竖专横(转载) 列转行 行转列

    普通行列转换 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 张三 数学 张三 物理 李四 语文 李四 数学 李四 物理 想变成(得到如下结果): 姓名 语文 数学 物理 --- ...

  7. Angular(01)-- 架构概览

    声明 本系列文章内容梳理自以下来源: Angular 官方中文版教程 官方的教程,其实已经很详细且易懂,这里再次梳理的目的在于复习和巩固相关知识点,刚开始接触学习 Angular 的还是建议以官网为主 ...

  8. 排错-升级Exchange 2013 CU22后程序名称显示异常

    近期在按需更新Exchange 2013 CU22补丁以便解决Microsoft Exchange Server ADV190007 Guidance for "PrivExchange&q ...

  9. Java集合-ArrayList源码解析-JDK1.8

    ◆ ArrayList简介 ◆ ArrayList 是一个数组队列,相当于 动态数组.与Java中的数组相比,它的容量能动态增长.它继承于AbstractList,实现了List, RandomAcc ...

  10. ansible基础-变量

    一 变量的命名规范 变量的命名应该符如下合两个规范: 变量应该由字母.数字.下划线组成 变量应该以字母开头 例如:host_port.HOST_PORT.var5是符合命名规范的,foo-port. ...