Dojo构建系统 - 使用google maps api的异步插件

时间:2016-04-20 13:48:44

标签: javascript dojo build-system

我正在尝试构建一个dojo应用程序并遇到一个我似乎无法解决的错误。

应用程序在未构建错误的情况下运行,我正在尝试使用Dojo Build System将文件优化为一层。

该错误与以下导入有关:

define([
  'plugins/async!//maps.google.com/maps/api/js?v=3'
  //...

错误是

error(308) Failed to evaluate AMD define function.
module: gis/dijit/StreetView; text: 

'gis/plugins/async!
error: SyntaxError: Unexpected token ILLEGAL
error(352) Optimizer reported errors; consult build report for details.

async插件看起来像这样:

define(function () {

var cb = '_asyncApiLoaderCallback';
return {
    load: function (param, req, loadCallback) {
        if (!cb) {
            return;
        } else {
            window.dojoConfig[cb] = function () {
                delete window.dojoConfig[cb];
                cb = null;
                loadCallback();
            };
            require([param + '&callback=dojoConfig.' + cb]);
        }
    }
};
});

1 个答案:

答案 0 :(得分:0)

这个问题的解决方案是从bower / npm切换到谷歌地图加载器。

https://github.com/Carrooi/Js-GoogleMapsLoader

dojo构建系统似乎将路径中的//视为注释,这会产生类似

的路径
'my/plugin!http://www.google.com'

显示为

'my/plugin!http:

这会导致错误,因为//之后的所有内容现在都是注释而且没有撇号。此外,www.google.com的路径显然已丢失。