我正在尝试d3 v4.0的Alpha版本,并尝试在jspm设置中创建自定义版本。我似乎无法理解新的模块化构建是如何工作的。
如果我想从模块(即d3-request中的json)导入命名导出,则可以执行以下操作:import {json} from "d3-request";
通过jspm / npm安装模块后。
如果我想安装整个库,同样 import d3 from "d3";
如果我想安装多个模块并命名导出,并在d3名称空间下将它们全部提供给我(即,将d3-shape与d3-request一起导入,并可以在同一d3全局目录中访问d3.json和d3.line) ,正确的语法是什么?
我意识到,当使用这些模块的独立版本时,d3_shape
会导出全局变量。将这些模块与我的应用程序捆绑在一起时,是否打算为每个模块具有单独的命名空间?
我相信计划是在D3 4.0完成后提供整个库的ES6构建以及自定义构建生成器,此时您将能够执行此操作:
import { json, line } from 'd3';
json( 'file.json', ( err, data ) => ... );
(请注意,d3
执行此操作时没有任何变量,您可以直接使用命名的导入。)
当前,该d3
软件包是版本3,没有ES6构建,因此同时有两个选项-安装所需的模块并从中分别导入...
import { json } from 'd3-request';
import { line } from 'd3-shape';
json( 'file.json', ( err, data ) => ... );
...或创建自己的自定义版本:
// src/my-d3.js
export { json } from 'd3-request';
export { line } from 'd3-shape';
// src/app.js
import { json, line } from './my-d3.js';
其中,我赞成第一个-它更明确,并且可能导致未使用的代码最终出现在您的构建中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句