d3.js - डी 3 v4.0 ईएस 6 मॉड्यूल के साथ कस्टम निर्माण



systemjs jspm (1)

मैं डी 3 v4.0 के अल्फा के साथ प्रयोग कर रहा हूं, और एक कस्टम बिल्ड बनाने का प्रयास कर रहा हूं, जेएसपीएम सेटअप में मुझे लगता है कि नए मॉड्यूलर बिल्ड का काम कैसे करना है इसके बारे में मेरे सिर को नहीं मिल सकता है

अगर मैं एक मॉड्यूल से नामांकित निर्यात आयात करना चाहता हूं, यानी जेएससन डी 3-अनुरोध से, मैं निम्न कार्य कर सकता हूं: import {json} from "d3-request"; jspm / npm के माध्यम से मॉड्यूल स्थापित करने के बाद

अगर मैं पूरी लायब्रेरी को स्थापित करना चाहता हूं, तो इसी तरह import d3 from "d3";

अगर मैं कई मॉड्यूल और नामांकित निर्यात स्थापित करना चाहता हूं और उन सभी को डी 3 नेमस्पेस के तहत मेरे पास उपलब्ध है (यानी, डी 3- अनुरोध के साथ डी 3-आकार आयात करना, और उसी d3 वैश्विक में d3.json और d3.line तक पहुंच प्राप्त करना) , इसके लिए सही सिंटैक्स क्या है?

मुझे एहसास है कि इन मॉड्यूल globals जैसे कि d3_shape निर्यात कर रहे हैं के स्वसंपूर्ण संस्करणों का उपयोग करते हुए। क्या इन मॉड्यूल को मेरे आवेदन के साथ बंडल करते समय प्रत्येक मॉड्यूल के लिए अलग-अलग नामस्थान रखने का इरादा है?


मेरा मानना ​​है कि योजना डी 3 4.0 की पूर्ण पुस्तकालय के साथ एक कस्टम बिल्ड जनरेटर के साथ पूरी पुस्तकालय के एक ES6 निर्माण की पेशकश करना है, जिस पर आप ऐसा कर सकेंगे:

import { json, line } from 'd3';

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

(ध्यान दें कि जब आप ऐसा करते हैं तो कोई d3 वैरिएबल नहीं होता है - आप सीधे नामित आयात का उपयोग करते हैं।)

वर्तमान में, d3 पैकेज 3 संस्करण है, जिसमें ईएस 6 बिल्ड नहीं है, इसलिए इस दौरान दो विकल्प हैं - आपको आवश्यक मॉड्यूल इंस्टॉल करने और उन्हें अलग से आयात करने के लिए ...

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

उनमें से, मैं पहले का पक्ष था - यह अधिक स्पष्ट है, और संभवत: कम से कम अप्रयुक्त कोड को आपके निर्माण में समाप्त होने की संभावना है।