可以合并或嵌套ES6导入
Possible to merge or nest ES6 imports?
许多现代JavaScript库正在从单片库更新为模块化的npm包;几个例子是lodash和d3。
这在降低构建规模方面很好,但在进口方面会有点尴尬。当加载整个库时,我写:
import d3 from 'd3';
let csv = d3.csv()...
let xScale = d3.scale()...
当加载单个模块而不是整个包时,我写:
import d3_scale from 'd3-scale';
import d3_request from 'd3-request';
let csv = d3_request.csv()...
let xScale = d3.scale.scaleLinear()...
有没有一种语法允许我合并导入,这样我就可以从单个对象(例如d3.csv()
、d3.scaleLinear()
)的每个包中调用所有函数?
当我写这个问题时,我找到了答案。自行橡胶式躲避。
排列运算符在这里看起来相当不错:
import * as d3_request from 'd3-request';
import * as d3_scale from 'd3-scale';
const d3 = {
...d3_request,
...d3_scale
};
d3.csv('path/to.csv', (error, data) => {
let xScale = d3.scale()...
});
另一种方法是这样做
创建一个文件d3-modules.js:
export * from 'd3-request';
export * from 'd3-scale';
然后将该文件导入到您需要的位置:
import * as d3 from "./d3-modules.js";
这实际上是d3自己的做法:https://github.com/d3/d3/blob/635d44786dd4322d0c89dd98546bff91d7cce0fe/index.js
相关文章:
- 可以合并或嵌套ES6导入
- 如何将es6导入转换为AMD需要
- 如何执行“变量”ES6导入
- React ES6 导入无状态组件
- 是否可以将ES6导入直接添加到对象上
- JestReact测试es6导入/导出不需要的mock
- 节点要求()与ES6导入:为什么这个例子不起作用
- ES6 -- 导入 es5 文件
- ES6 导入/导出语法困难
- 使用 ES6 导入 JSNLog 的正确语法是什么?
- ES6:导入多个文件
- ES6 导入语法与 Angular 1.5 UI 路由器
- ReactJS ES6导入类问题
- es6-导入不带别名的所有命名模块
- 这些ES6导入方法之间的区别是什么
- ES6 导入的代码是否严格
- ES6导入模块作为对象
- 通过ES6导入导入远程文件
- 我如何告诉Babel在使用Rollup Babel插件时忽略es6导入?
- 如何使用es6导入图像