如何有选择地导入ES2015模块功能,但具有命名空间?

Ben

我开始使用汇总和D3版本4(该版本使用ES2015模块编写)。我已经使用传统的D3名称空间“ d3”编写了一些代码。现在,我想使用汇总创建一个自定义包。我想使用摇树,因为我可能只使用了d3中大约一半的功能,并且我想让东西尽可能的轻。

我很清楚可以选择性地导入函数,例如:

import {scaleLinear} from "d3-scale";
import {
      event,
      select,
      selectAll
} from "d3-selection";

这将变得非常冗长,因为d3的一半包含很多功能。我可以忍受这一点。更大的问题是,它还需要完全重写我的所有函数标识符而没有名称空间。我对此不太在乎,因为我更喜欢命名空间库代码。

我了解可以导入所有模块:

import * as d3 from "d3";

保留d3对象名称空间,这对我的代码组织很有用。但是,然后汇总无法将未使用的功能摇晃出捆绑包。

我梦of以求的是:

import {
      event,
      select,
      selectAll
} as d3 from "d3-selection";

但是规范中似乎不存在这种功能/语法。如何既可以有选择地定位模块的各个部分,又可以在导入期间保留命名空间?

那将是烧瓶

为此,您需要一个重新导出模块:

export {
      event,
      select,
      selectAll
} from "d3-selection";

import * as d3 from './d3';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果属性名称具有命名空间,XPath 如何通过属性名称选择节点

有+ ES2015导入

如何从具有命名空间的XML中获取节点

如何从具有命名空间的变量创建类

如何更改具有命名空间的属性的值?

如何获取具有命名空间的子节点值?

具有命名空间的DOMDocument

如何将CSS属性选择器用于具有命名空间属性href的SVG元素?

Vuex,具有命名空间的模块吸气剂在根吸气剂中不可用?

如何使用 XDocument 更新具有命名空间要求的现有 xml 文件?

有命名空间而没有命名空间

导入错误:“没有命名模块” *存在*

Vue.js 2 / Vuex-如何在没有mapGetters的情况下从具有命名空间属性:true的模块中调用吸气剂?

如何修复导入错误:VScode在python中没有命名模块...

具有命名空间的 Linq XML Xelement 返回 Null

使用具有命名空间的 R 解析 XML

xmlstarlet 添加具有命名空间和属性的元素

具有命名空间查询的Apollo Client 3.0缓存

在xml中找不到具有命名空间的元素

Python ElementTree 获取具有命名空间的属性

在 PHP 中扩展具有命名空间的类

使用 Python 解析具有命名空间的 XML 文件

使用 xpath 访问具有命名空间的子节点

您是否使用TypeScript导入`lodash`-带有`es2015`模块?

如何使用 ElementTree 在具有命名空间的 XML 文件中查找和编辑标签

C# - 如何删除具有命名空间的 XMLDocument 中的声明和元素?

检索所有命名的ES6导入

如何使用Javascript ES6 ES2015模块直接将常量导出/导入到导入模块名称空间?

导入错误:没有命名的模块无法在python中导入模块的顶级目录