2016-05-04 18 views
7

Sto sperimentando l'alfa di d3 v4.0 e sto tentando di creare una build personalizzata, all'interno di una configurazione jspm. Non riesco a capire come funziona la nuova build modulare.d3 v4.0 build personalizzata con moduli ES6

Se si desidera importare un'esportazione denominata da un modulo, ad esempio json da d3-request, è possibile effettuare le seguenti operazioni: import {json} from "d3-request"; dopo aver installato il modulo tramite jspm/npm.

Se voglio installare l'intera libreria, allo stesso modo import d3 from "d3";

Se voglio installare più moduli e le esportazioni di nome e averli tutti a disposizione per me sotto il namespace d3 (vale a dire, l'importazione d3-forma al fianco D3 richiesta e avendo accesso a d3.json e d3.line nello stesso d3 globale), qual è la sintassi corretta per questo?

Mi rendo conto che quando si utilizzano versioni standalone di questi moduli vengono esportati i dati globali come d3_shape. È questa l'intenzione, di avere spazi dei nomi separati per ogni modulo quando si raggruppano questi moduli con la mia applicazione?

risposta

7

Io credo il piano è quello di offrire una build ES6 di tutta la libreria di una volta D3 4.0 è finito, insieme a un generatore di generazione personalizzata, a quel punto sarete in grado di fare questo:

import { json, line } from 'd3'; 

json('file.json', (err, data) => ...); 

(si noti che non c'è nessuna variabile d3 quando si esegue questa operazione -. si utilizza direttamente le importazioni di nome)

Attualmente, il pacchetto d3 è la versione 3, che non ha una build ES6, così nel frattempo ci sono due opzioni: installa i moduli necessari e importa da loro singolarmente ...

import { json } from 'd3-request'; 
import { line } from 'd3-shape'; 

json('file.json', (err, data) => ...); 

... o creare il proprio generazione personalizzata:

// src/my-d3.js 
export { json } from 'd3-request'; 
export { line } from 'd3-shape'; 

// src/app.js 
import { json, line } from './my-d3.js'; 

Di questi, mi piacerebbe favorire la prima - è più esplicito, e forse meno probabilità di causare codice inutilizzato per finire nella tua build.

+0

Impressionante, grazie per il chiarimento sugli approcci disponibili! Qui speriamo nella versione completa di ES6. – amigolargo

+1

D3 4.0 è fuori. [Demo] (https://bl.ocks.org/mbostock/bb09af4c39c79cffcde4) – vsync

+0

Cura di aggiornare questa risposta? – ksav

Problemi correlati