मैं एक रेपो डाल रहा हूं जो एनपीएम पर उपलब्ध होगा। रेपो में कई मॉड्यूल होते हैं, react-leaflet और react-d3 के समान। आवेदन डेवलपर्स उदा, require
/import
के माध्यम से NPM पैकेज के भीतर से मॉड्यूल शामिल होंगे .:एकाधिक मॉड्यूल से सीएसएस (एसएएस) शामिल करें
import { ModuleOne, ModuleTwo } from 'myNpmPackage`;
मैं इन मॉड्यूल में से प्रत्येक के साथ सीएसएस पैकेज की जरूरत है, और कहा कि सीएसएस प्रत्येक मॉड्यूल के भीतर सास फाइलों से संकलित किया जाएगा।
myNpmPackage
की तरह के लिए एक फ़ोल्डर संरचना को देखते हुए:
├── src
│ ├── ModuleOne
│ │ ├── index.js
│ │ ├── style.scss
│ ├── ModuleTwo
│ │ ├── index.js
│ │ ├── style.scss
├── package.json
क्या एक अच्छा प्रवाह उन .scss
फ़ाइलें बनाने के लिए प्रकाशित है (.css
में संकलित) myNpmPackage
के उपभोक्ताओं के लिए उपलब्ध, की आवश्यकता होती है कि उपभोक्ताओं को स्पष्ट रूप से शामिल किए बिना/@import
/link rel="stylesheet"
सीएसएस?
मैं gulp और browserify का उपयोग कर रहा हूं और उस पाइपलाइन से चिपकना पसंद करूंगा।
अद्यतन: मैंने पाया parcelify
मैं क्या जरूरत के कुछ करता है। मैं myNpmPackage/package.json
को निम्नलिखित जोड़ें:
"style": "src/**/*.scss",
"transforms": [
"sass-css-stream"
]
और dependencies
को parcelify
जोड़ने के लिए, इतना है कि यह myNpmPackage
के साथ स्थापित किया गया है।
myNpmPackage
के उपभोक्ताओं को तो उनके gulpfile
के लिए निम्न जोड़ना होगा:
parcelify(b, {
bundles: {
style: './build/modules.css'
}
});
parcelify
myNpmPackage
के मॉड्यूल में सभी .scss
फ़ाइलों को ख़त्म कर और उन्हें ./build/modules.css
में बंडल करने myNpmPackage/package.json
में "style"
ग्लोब का प्रयोग करेंगे।
यह वहाँ हो रही है, लेकिन दो कारणों के लिए आदर्श नहीं:
- प्रत्येक मॉड्यूल से सीएसएस फ़ाइलें सभी उपभोक्ता आवेदन निर्माण में शामिल किए गए हैं, भले ही नहीं सभी मॉड्यूल शामिल किए गए हैं;
- इस रणनीति के लिए उपभोक्ता अनुप्रयोग डेवलपर को "बस काम करने" के बजाय अपने
gulpfile
पर कोड जोड़ने की आवश्यकता है।
मुझे पता है तुम browserify साथ रहना चाहते हैं, लेकिन [webpack] (http://webpack.github.io/) वास्तव में आपके उपयोग के मामले के लिए सही है –
@ जूलियन कैबनेस क्या आप विस्तार से सोचेंगे? शायद आप वेबपैक से अधिक परिचित हैं और मैं एक उदाहरण साझा कर सकता हूं कि मैं वेबपैक के साथ ऐसा कैसे करूं। – ericsoco