मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जिसमें एक विएक्स मॉड्यूल और एक अमूर्त घटक हैं जो उपयोगकर्ता विस्तार कर सकते हैं।Vue.js घटकों की लाइब्रेरी कैसे प्रकाशित करें?
मैं इसे अपने कोडबेस को साफ करने के लिए एनपीएम पर प्रकाशित करना चाहता हूं और इसे एक ठोस अच्छी तरह से परीक्षण मॉड्यूल के रूप में अपने प्रोजेक्ट से दूर खींचना चाहता हूं। मैं package.json
में मुख्य फ़ाइल निर्दिष्ट किया है एक सूचकांक जो सब कुछ मैं बेनकाब करने के लिए चाहते हैं का आयात करता है लोड करने के लिए:
https://github.com/stephan-v/vue-search-filters/
सूचकांक इस में शामिल है इस समय:
import AbstractFilter from './src/components/filters/abstract/AbstractFilter.vue';
import Search from './src/store/modules/search';
module.exports = {
AbstractFilter,
Search
};
इस कार्य के लिए मैं की जरूरत है इसे बेबेल करने के बाद से एक बेबेल कंपाइलर सामान्य रूप से node_modules से आयातित फ़ाइलों को पारदर्शी नहीं करेगा (अगर मैं यहां गलत हूं तो मुझे सुधारें)। इसके अलावा मैं शायद ऐसा करने का अच्छा विचार रखूंगा ताकि इसे विभिन्न प्रणालियों द्वारा उपयोग किया जा सके।
वेबपैक के साथ मुझे केवल उन फ़ाइलों को कैसे ट्रांसफर कर सकता है जिन्हें मुझे चाहिए? क्या मुझे इसके लिए एक अलग कॉन्फ़िगरेशन बनाना है?
इस तरह की कॉन्फ़िगरेशन कैसा दिखता है? मुझे पता है कि vue-cli में एक एकल फ़ाइल घटक के लिए build
कमांड है लेकिन यह थोड़ा अलग है।
इस तरह कुछ कैसे पारदर्शी करने के बारे में कोई सुझाव या सुझाव स्वागत है।
संपादित
यह रूप में अच्छी तरह एक अच्छी शुरुआत की तरह लगता है:
https://github.com/Akryum/vue-share-components
Webpack उपयोगकर्ताओं को नोटिस के लिए सबसे अधिक आयात बात यह है कि आप UMD में अपनी फ़ाइलें transpile करने की जरूरत है जो कर सकते हैं द्वारा सेट किया गया:
libraryTarget: 'umd'
यह सुनिश्चित करेगा कि आप के लिए पारदर्शी हो रहे हैं Universal Module Definition
, अपने कोड एक सरल स्क्रिप्ट टैग के रूप में, एएमडी, CommonJS की तरह अलग अलग वातावरण में काम करेंगे, आदि
अर्थ इसके अलावा webpack में बाहरी संपत्ति प्रदान करने के लिए आयात यह है कि: यदि आप कर सकते हैं यहाँ
externals: {}
परिभाषित करें कि कौन से पुस्तकालय आपके प्रोजेक्ट उपयोगकर्ता हैं लेकिन इसे आपके dist
फ़ाइल में नहीं बनाया जाना चाहिए। उदाहरण के लिए आप नहीं चाहते हैं कि वू लाइब्रेरी को आपके एनपीएम पैकेज के स्रोत में संकलित/पारदर्शी किया जाए।
मैं थोड़ा और शोध करूंगा, अब तक का सबसे अच्छा विकल्प खुद को कस्टम प्रोजेक्ट बनाने की तरह दिखता है यदि मुझे लचीलापन और इकाई परीक्षण चाहिए।
Webpack डॉक्स
यह भी जो कैसे Webpack के साथ कुछ प्रकाशित करने के बारे में गहराई में चला जाता है एक उपयोगी पृष्ठ है:
https://webpack.js.org/guides/author-libraries/#add-librarytarget
धन्यवाद यह बहुत अच्छी शुरुआत की तरह दिखता है और शायद मैं जो खोज रहा हूं। मैं इसे आज रात देखता हूं और आपको बताता हूं कि क्या यह मेरे प्रश्न का उत्तर देता है। –
बस उत्सुक, क्या आपने इस प्रोजेक्ट के लिए वेबपैक कॉन्फ़िगरेशन बनाया है या आपने किसी अन्य प्रोजेक्ट से कुछ हिस्सों को लिया है जो 'उमड' के लिए भी बनाता है? –
इसके अलावा, आप इस परियोजना के साथ कैसे विकसित होते हैं? कोई दर्शक नहीं है और Vue.js. का कोई आयात नहीं है। ऐसा लगता है कि आप केवल इस पूरे प्रोजेक्ट को एक रेपो तक जोड़कर विकसित कर सकते हैं जो वास्तव में आयात करता है आप इस से कैसे निपटते हैं? मैं अधिमानतः एक पूरी तरह से स्वतंत्र परियोजना होगी इसलिए मैं इकाई परीक्षण, ई 2 परीक्षण, आदि भी चला सकता हूं। –