2016-12-15 68 views
2

一个简单的路障。我需要在我的一些服务中使用Leaflet和Leaflet-Draw插件。如何导入在同一名称空间上扩展另一个模块

我不知道如何导入整个模块(内核和插件)

// the core 
import * as L from 'leaflet'; 
// extension 
import 'leaflet-draw'; 

export class LeafletConsumerService {} 

我有我不喜欢太多的解决方案。我加载通过硬连接他们的图书馆index.html和消费者只是具有参考声明的分型文件

/// <reference path="../typings/index.d.ts" /> 

export class LeafletConsumerService {} 

难道就没有别的办法,我能做到这一点?有没有办法将一个文件导入已经加载的模块中?

回答

1

好吧,一个快速和肮脏的解决方案。如果您从quickstart repo开始您的项目,此答案有效。转到system.config.extras.js和扩展你如此构造:

System.config({ 
    map: { 
     'leaflet': 'npm:leaflet/dist/leaflet.js' 
    }, 
    packages: { 
     leaflet: { 
      defaultExtension: 'js' 
     }, 
    } 
}); 

这意味着我们现在可以导入单张这样

import * as L from 'leaflet'; 

,并添加了相应的扩展名的文件中描述

import 'your-leaflet-extension'; 

请记住扩展您的扩展的类型信息(通过打字文件或制作自己的文件)

相关问题