मैं एक एनपीएम कोणीय पुस्तकालय बना रहा हूं और अंतिम निर्माण में एक सीएसएस फ़ोल्डर और कस्टम फोंट उपलब्ध करना चाहता हूं, इसलिए मैं केवल एससीएसएस फाइलों को उन अनुप्रयोगों में आयात कर सकता हूं जो इस पुस्तकालय को सीधे उनकी एससीएसएस फाइलों में स्थापित करेंगे।

पुस्तकालय संरचना:

src/
--lib/
----styles/
------variables.scss
------custom.scss
----components/
--public_api.ts
--test.ts
package.json

एससीएसएस फ़ाइल में आयात ऐसा होना चाहिए?

@import '~@mylib/styles/variables.scss'

मैं निर्माण उत्पन्न करने वाली स्क्रिप्ट में स्वयं को बनाने के लिए सीएसएस फ़ोल्डर की प्रतिलिपि बनाने की कोशिश कर रहा हूं।

कुछ इस तरह:

ng build lib && cp /styles dist/lib/styles && npm pack

अभी सफलता नहीं मिली है।

मैं यह भी नहीं जानता कि यह एक अच्छा अभ्यास है, लेकिन मुझे लगता है कि यह काम करेगा

0
Nathan 9 अगस्त 2019, 19:12

2 जवाब

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

समझ गया

मैं नहीं जानता कि क्या यह सबसे अच्छा अभ्यास है, लेकिन यह काम करता है।

इसे package.json में स्क्रिप्ट पर रखें, फिर अपनी लाइब्रेरी बनाने और पैक करने के लिए npm रन बिल्ड-मायलिब का उपयोग करें।

    "build-mylib": "ng build mylib && npm run cp-styles && npm run cp-assets && cd dist/mylib/ && npm pack",
    "cp-styles": "cpx \"./projects/mylib/src/lib/styles/**/*\" \"./dist/mylib/styles\"",
    "cp-assets": "cpx \"./projects/mylib/src/lib/assets/**/*\" \"./dist/mylib/assets\""
0
Nathan 9 अगस्त 2019, 21:01

आप इसे अपने लिए करने के लिए एक गल्प कार्य भी लिख सकते हैं, यह संकलन के दौरान आपके द्वारा चलाई जाने वाली स्क्रिप्ट की संख्या को कम कर देगा, लेकिन उन सभी कार्यों को गल्प फ़ाइल में किया जाएगा। यह gulpfile.js . में जाएगा

gulp.task('copyStyles ', function() {
    return gulp.src('./projects/mylib/src/lib/styles/**/*\')
        .pipe(gulp.dest('./dist/mylib/styles\'));
});

और आपके package.json > scripts में

"pack-lib": "ng build lib && gulp copyStyles && npm pack"
0
Omkar Dixit 21 अगस्त 2019, 22:44