javascript - 使用 Proj4 外部 JS 文件进行 Dojo 构建

标签 javascript build dojo amd

我正在学习如何使用 Dojo 构建系统将应用程序构建到单个 js 文件(或接近)中。我已尽我所知按照说明进行操作,并通过一个基本示例使其工作。我现在正在尝试添加额外的 js 资源和小部件。

我的一个小部件需要 Proj4js 投影库在坐标之间进行转换。不幸的是,当我尝试构建应用程序时,这会导致问题。

error(311) Missing dependency.
module: app/widgets/MapInfo; dependency: proj4/proj4

我对该包的 dojo 配置设置如下:

            packages: [
                // Using a string as a package is shorthand for `{ name: 'app', location: 'app' }`
                'app',
                'dgrid',
                'dijit',
                'dojo',
                'dojox', {
                    name: 'put-selector',
                    location: 'put-selector',
                    main: 'put'
                },
                'xstyle',
                'esri',
                {
                    name: 'proj4',
                    location: '//cdnjs.cloudflare.com/ajax/libs/proj4js/2.3.6/'
                }
            ],

这是小部件的顶部:

define([
'dojo/_base/declare',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin',
'dojo/_base/lang',
'dojo/html',
'dojo/dom-style',
'dojo/number',
'dojo/topic',
'proj4/proj4',
'xstyle/css!./MapInfo/css/MapInfo.css'
], function (
declare,
WidgetBase,
TemplatedMixin,
lang,
html,
style,
number,
topic,
proj4
  ) {

选项 1:忽略它 我曾想过首先尝试告诉 dojo 忽略它,但是,在阅读了一些帖子后,这实际上并不是一个选择。

选项 2:使用插件? 我的下一个想法是尝试使用 dojo/text 这样的 dojo 插件!但是,要包含该文件,我也无法使其正常工作。

选项 3:在页面中嵌入脚本 最后,作为最后的手段,我可​​以简单地使用脚本标记嵌入脚本并通过小部件中的 window.proj4 引用 proj4,但这不是很便携,因此我正在寻找更好的解决方案。

谢谢!

最佳答案

我最终通过使用 proj4 库的本地副本来完成此工作。然后我使用 dojo 的 map 属性将 proj4 映射到其正确的位置:

  map: {
    '*': {
      'viewer': 'cmv/viewer/js/viewer',
      'gis': 'cmv/viewer/js/gis',
      'proj4js': 'app/vendor'
    }
 },

proj4 现在可以由使用路径'proj4js/proj4' 的小部件使用。

关于javascript - 使用 Proj4 外部 JS 文件进行 Dojo 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29953333/

相关文章:

python - 将脚本添加到 build.gradle

javascript - 使用 CSS 排列元素

build - NVCC - 主机编译器针对不支持的操作系统

javascript - JS 延迟加载图像 - 将测试函数应用于多个 HTML 元素

TFS 联机构建失败 - NuGet 包还原不工作

javascript - Dojo 的响应式设计

forms - 使用 Dojo 富文本编辑器提交表单

带通配符的 Dojo 商店查询

javascript - 如何使用 Bootstrap 为平行列 div 添加/提供完整高度?

javascript - 带有 js : true not finding checkbox 的 capybara