ArcGIS for JavaScript API 3.x自定義構(gòu)建

1次泽、環(huán)境安裝

(1) Node.js(包含npm了袁,node包管理器)
(2) git
(3) Java 7或更高版本 - Closure Compiler所需 (用于Dojo構(gòu)建,英文為Dojo build)
環(huán)境安裝參考React+Cordova+Android環(huán)境配置中的1刻诊、nvm-windows安裝矗烛;5、Android需求環(huán)境

2告组、克隆jsapi-resources

cd /d D:\mapp
git clone https://github.com/Esri/jsapi-resources.git

3、安裝bower

npm install -g bower

4癌佩、安裝依賴的包

進(jìn)入jsapi-resources\3.x\bower\dojo文件夾木缝,執(zhí)行安裝依賴包,安裝過(guò)程視網(wǎng)絡(luò)情況需要一定的時(shí)間围辙,下載文件失敗請(qǐng)重試(可能需要科學(xué)上網(wǎng))

cd /d D:\mapp\jsapi-resources\3.x\bower\dojo
npm install

執(zhí)行成功后我碟,會(huì)在dojo文件夾下多出node_modules文件夾,在dojo/src下多出dojo姚建、dojox矫俺、esri等文件夾,如下圖所示

dojo/node_modules文件夾

dojo/src文件夾

5掸冤、修改相應(yīng)文件

(1)dojo/build.profile.js中的layers
layers的每一個(gè)屬性表示一個(gè)獨(dú)立的js文件溢谤,可將多個(gè)js文件合成一個(gè)文件輸出坏逢,如下面的app/main會(huì)輸出為app/main.js,該文件中包含app/maindojox/gfx/path衙荐、dojox/gfx/svg等多個(gè)文件的代碼。

  layers: {
    // This is the main loader module. It is a little special because it is treated like an AMD module even though
    // it is actually just plain JavaScript. There is some extra magic in the build system specifically for this
    // module ID.
    "dojo/dojo": {
      // By default, the build system will try to include `dojo/main` in the built `dojo/dojo` layer, which adds
      // a bunch of stuff we do not want or need. We want the initial script load to be as small and quick to
      // load as possible, so we configure it as a custom, bootable base.
      boot: true,
      customBase: true
    },
    'app/main': {
      include: [
        "app/main",
        "dojox/gfx/path",
        "dojox/gfx/svg",
        "dojox/gfx/filters",
        "dojox/gfx/svgext",
        "dojox/gfx/shape",
        "esri/dijit/Attribution"
      ],
      includeLocales: ["zh-cn"]
    },
    "esri/layers/VectorTileLayerImpl": {
      include: [
        "esri/layers/VectorTileLayerImpl"
      ],
      includeLocales: ["zh-cn"]
    },
    "esri/layers/support/webglDeps": {
      include: [
        "esri/layers/support/webglDeps"
      ],
      includeLocales: ["zh-cn"]
    }
  },

(2)dojo/src/built.html

<!DOCTYPE html>
<html>

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <!-- <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;"> -->
    <meta name="format-detection" content="telephone=no">
    <meta name="msapplication-tap-highlight" content="no">
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
    <title></title>
    <link rel="stylesheet" href="dijit/themes/claro/claro.css">
    <link rel="stylesheet" href="esri/css/esri.css">

    <style>
        html,
        body,
        #map {
            height: 100%;
            padding: 0;
            margin: 0;
        }
    </style>

    <script src="dojo/dojo.js"></script>
    <script>require(["app/main"]);</script>
</head>

<body class="claro">
    <div id="map"></div>
    <script type="text/javascript" src="cordova.js"></script>
</body>

</html>

(3)dojo/src/app/main.js

define(["esri/map"], function (Map) {
    var map = new Map("map", {
        basemap: "topo",
        center: [-122.45, 37.75],
        zoom: 13
    });
});

6塔淤、構(gòu)建

jsapi-resources\3.x\bower\dojo文件夾下執(zhí)行構(gòu)建

npm run build

注意:構(gòu)建完的文件在dojo/dist下,包含完整的包流礁。如果需要手動(dòng)挑選出需要加載的資源文件比較困難,可通過(guò)發(fā)布網(wǎng)站并利用工具下載來(lái)達(dá)到挑選的目的罗丰。

構(gòu)建結(jié)果

7神帅、將文件夾發(fā)布為虛擬目錄并進(jìn)行訪問(wèn)

D:\mapp\jsapi-resources\3.x\bower文件夾發(fā)布為虛擬目錄
訪問(wèn)http://localhost/bower/dojo/dist/index.html

訪問(wèn)地圖

8、下載頁(yè)面資源文件

(1)打開Chrome網(wǎng)上應(yīng)用店https://chrome.google.com/webstore/category/extensions萌抵,需要科學(xué)上網(wǎng)枕稀;
(2)查找Full download JS/CSS/HTML,點(diǎn)擊添加至Chrome谜嫉;
(3)按F12打開開發(fā)者工具萎坷,找到FullDownload,點(diǎn)擊Record進(jìn)行錄制沐兰,按F5刷新頁(yè)面哆档,按DownloadAll下載資源。

使用Full download JS/CSS/HTML進(jìn)行下載

參考資料

1住闯、Using Bower for Custom Builds of the ArcGIS API for JavaScript
https://developers.arcgis.com/javascript/3/jshelp/inside_bower_custom_builds.html
2瓜浸、Bower Sample application
https://github.com/Esri/jsapi-resources/tree/master/3.x/bower/dojo

轉(zhuǎn)載請(qǐng)注明:作者gisxiaowei,首發(fā)簡(jiǎn)書 jianshu.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末比原,一起剝皮案震驚了整個(gè)濱河市插佛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌量窘,老刑警劉巖雇寇,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蚌铜,居然都是意外死亡锨侯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門冬殃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)囚痴,“玉大人,你說(shuō)我怎么就攤上這事审葬∩罟觯” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵涣觉,是天一觀的道長(zhǎng)痴荐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)旨枯,這世上最難降的妖魔是什么蹬昌? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮攀隔,結(jié)果婚禮上皂贩,老公的妹妹穿的比我還像新娘栖榨。我一直安慰自己,他們只是感情好明刷,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布婴栽。 她就那樣靜靜地躺著,像睡著了一般辈末。 火紅的嫁衣襯著肌膚如雪愚争。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天挤聘,我揣著相機(jī)與錄音轰枝,去河邊找鬼。 笑死组去,一個(gè)胖子當(dāng)著我的面吹牛鞍陨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播从隆,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼诚撵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了键闺?” 一聲冷哼從身側(cè)響起寿烟,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辛燥,沒(méi)想到半個(gè)月后筛武,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡购桑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年畅铭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勃蜘。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖假残,靈堂內(nèi)的尸體忽然破棺而出缭贡,到底是詐尸還是另有隱情,我是刑警寧澤辉懒,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布阳惹,位于F島的核電站,受9級(jí)特大地震影響眶俩,放射性物質(zhì)發(fā)生泄漏莹汤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一颠印、第九天 我趴在偏房一處隱蔽的房頂上張望纲岭。 院中可真熱鬧抹竹,春花似錦、人聲如沸止潮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)喇闸。三九已至袄琳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間燃乍,已是汗流浹背唆樊。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刻蟹,地道東北人窗轩。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像座咆,于是被迫代替她去往敵國(guó)和親痢艺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容