2016-05-04 6 views
7

Я экспериментирую с альфа d3 v4.0 и пытаюсь создать пользовательскую сборку в настройках jspm. Я не могу понять, как будет работать новая модульная сборка.d3 v4.0 пользовательская сборка с модулями ES6

Если я хочу импортировать именованный экспорт из модуля, то есть json из d3-запроса, я могу сделать следующее: import {json} from "d3-request"; после установки модуля через jspm/npm.

Если я хочу установить целую библиотеку, также import d3 from "d3";

Если я хочу установить несколько модулей и именованный экспорт и их всех доступный мне под пространством имен d3 (т.е. импортировать d3-форму наряду с d3- запрос и доступ к d3.json и d3.line в том же глобальном d3), для чего это правильный синтаксис?

Я понимаю, что при использовании автономных версий этих модулей экспортируются глобальные переменные, такие как d3_shape. Является ли это намерением иметь отдельные пространства имен для каждого модуля при связывании этих модулей с моим приложением?

ответ

7

Я считаю, план, чтобы предложить ES6 сборку всей библиотеки раз D3 4.0 закончена, наряду с генератором пользовательских сборки, в какой момент вы будете в состоянии сделать это:

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'; 

из тех, что я предпочитать первый - это более четко, и, возможно, менее вероятно, причиной неиспользуемый код, чтобы закончить в вашей сборке.

+0

Удивительно, спасибо за разъяснения относительно доступных подходов! Здесь мы надеемся на полную сборку ES6. – amigolargo

+1

D3 4.0 отсутствует. [Демонстрация] (https://bl.ocks.org/mbostock/bb09af4c39c79cffcde4) – vsync

+0

Уточните этот ответ? – ksav

 Смежные вопросы

  • Нет связанных вопросов^_^