मैं टाइपस्क्रिप्ट में एक पुस्तकालय पैकेज लिख रहा हूं जिसे npm रजिस्ट्री में प्रकाशित किया जाना है ताकि इसे विभिन्न अन्य परियोजनाओं द्वारा उपयोग किया जा सके।

मैंने प्रकाशन दस्तावेज़ का पालन किया है ताकि यह सुनिश्चित किया जा सके कि --declaration विकल्प tsc के लिए सही है जैसे कि टाइप परिभाषाएं *.d.ts फाइलों में भी निर्यात की जाती हैं।

मेरा सवाल यह है कि अभी ऐसे निर्यात विभिन्न फ़ोल्डरों में बिखरे हुए हैं और मेरे पैकेज के उपभोक्ता उन्हें नीचे की तरह आयात कर रहे हैं।

import { FooType } from 'my-test-pacakge/dist/src/foo/types';
import { BarInterface } from 'my-test-package/dist/src/foo/bar';

मैं सोच रहा हूं कि क्या यह स्वीकार्य है क्योंकि यह गन्दा दिखता है। क्या मुझे उन्हें स्वच्छ तरीके से व्यवस्थित करने के लिए अपनी घोषणा फाइल लिखनी चाहिए?

एक सामान्य index.ts फ़ाइल के माध्यम से API को निर्यात करने का सुझाव देने वाले समान प्रश्नों के मौजूदा उत्तर मौजूद हैं। यह मेरे लिए बहुत वैध लगता है लेकिन मैं बस सोच रहा हूं कि क्या dist फ़ोल्डर से सीधे आयात करना बुरा व्यवहार माना जाता है?

0
Ruifeng Ma 15 अगस्त 2020, 02:16

1 उत्तर

सबसे बढ़िया उत्तर

अधिकांश पैकेज 1 निर्यात बिंदु से निर्यात करना पसंद करेंगे, ताकि आपके पुस्तकालयों के उपयोगकर्ता को आपके पैकेज की निर्देशिका संरचना के बारे में कुछ भी जानने की आवश्यकता न हो।

import { FooType, BarInterface } from 'my-test-package'.

एक बोनस लाभ यह है कि आप अंतिम-उपयोगकर्ता को प्रभावित किए बिना अपने पैकेज के आंतरिक भाग को पुनर्गठित कर सकते हैं, और यह स्पष्ट रूप से बताता है कि n आइटम क्या हैं जिनका आप अपने पैकेज के उपयोगकर्ताओं द्वारा उपयोग करने का इरादा रखते हैं, और जो आंतरिक हैं आपका पैकेज।

तो हाँ, मैं सहमत हूँ कि यह एक सर्वोत्तम अभ्यास है।

कुछ पैकेज हैं जिनमें अतिरिक्त नेमस्पेसिंग है, mysql2 पैकेज के दिमाग में आता है जिसमें दो प्रमुख निर्यात होते हैं:

import { Connection } from 'mysql2';
import { Connection } from 'mysql2/promise';

लेकिन ध्यान दें कि यहां dist जैसा कुछ नहीं है। dist अंतिम उपयोगकर्ता के लिए अर्थपूर्ण नहीं है।

1
Evert 14 अगस्त 2020, 23:25