首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何导入在同一命名空间中扩展另一个模块的模块

如何导入在同一命名空间中扩展另一个模块的模块
EN

Stack Overflow用户
提问于 2016-12-15 18:58:20
回答 1查看 991关注 0票数 2

一个简单的路障。我需要在我的一些服务中使用Leaflet和Leaflet-Draw插件。

我不知道如何导入完整的模块(核心和插件)

代码语言:javascript
复制
// the core
import * as L from 'leaflet';
// extension
import 'leaflet-draw';

export class LeafletConsumerService {}

我有一个我不太喜欢的解决方案。我通过在index.html中硬链接这些库来加载库,消费者只需要一个对类型文件的引用声明

代码语言:javascript
复制
/// <reference path="../typings/index.d.ts" />

export class LeafletConsumerService {}

没有其他方法可以做到这一点吗?有没有一种方法可以导入一个只会对已经加载的模块产生副作用的文件?

EN

回答 1

Stack Overflow用户

发布于 2017-01-10 07:01:22

好的,这是一个又快又脏的解决方案。如果你从一个quickstart repo开始你的项目,这个答案是有效的。转到system.config.extras.js并按如下方式扩展您的配置:

代码语言:javascript
复制
System.config({
    map: {
        'leaflet': 'npm:leaflet/dist/leaflet.js'
    },
    packages: {
        leaflet: {
            defaultExtension: 'js'
        },
    }
});

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

代码语言:javascript
复制
import * as L from 'leaflet';

并按所述添加相应的扩展文件

代码语言:javascript
复制
import 'your-leaflet-extension';

记得为你的扩展扩展类型信息(通过一个类型文件或者自己创建)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41162479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档