2016-05-04 9 views
7

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

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

मैं पूरी पुस्तकालय स्थापित करना चाहते हैं, वैसे ही import d3 from "d3";

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

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

उत्तर

7

मेरा मानना ​​है कि योजना एक बार डी 3 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'; 
उन में से

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

+0

बहुत बढ़िया, उपलब्ध दृष्टिकोणों पर स्पष्टीकरण के लिए धन्यवाद! यहां पूर्ण ES6 निर्माण की उम्मीद है। – amigolargo

+1

डी 3 4.0 बाहर है। [डेमो] (https://bl.ocks.org/mbostock/bb09af4c39c79cffcde4) – vsync

+0

इस उत्तर को अपडेट करने के लिए देखभाल करें? – ksav

संबंधित मुद्दे