2017-11-07 36 views
5

मेरे पास तीन अलग कोणीय क्ली परियोजनाएं (एक्स, वाई, जेड) हैं। मैं [एक्स] को मूल परियोजना के रूप में बनाना चाहता हूं, जबकि मैं एक्स और जेड को एक्सपीएम पैकेज निर्भरता के रूप में एक्स में जोड़ना चाहता हूं। इसका मतलब है कि [एक्स] पैकेज.जेसन में निम्नानुसार [वाई] और [जेड] की निर्भरताएं शामिल होंगी।एक और कोणीय परियोजना के पैकेज.जेसन में एक निर्भरता के रूप में कोणीय परियोजना को कैसे सेट करें

"dependencies": { 
    "@angular/common": "^4.0.0", 
    //.. other angular dependency 
    "y": "1.0.1", 
    "z": "1.0.3" 
} 

उन निर्भरताओं को कैसे बनाया जाए?

नोट: अभी मेरे पास एक्स और जेड एक्स के अंदर एक आलसी लोड फ़ोल्डर के रूप में है। जिसे मैं स्वतंत्र एनपीएम पैकेज के रूप में रद्द करना चाहता हूं।

+1

यह स्पष्ट नहीं है कि क्या समस्या है आपके पास है। – estus

+0

एनपीएम पैक का उपयोग करके या स्थानीय विकास के लिए अपने वाई और जेड प्रोजेक्ट को पैक करने का प्रयास करें, आप एनपीएम लिंक का उपयोग कर सकते हैं। और इन्हें एक्स प्रोजेक्ट्स पैकेज.जेसन में एनपीएम इंस्टॉल करें path_to_y.tgz और npm install path_to_z.tgz इंस्टॉल करें, फिर आलसी node_modules/y/module_name –

उत्तर

0

आपको अपने वाई और जेड परियोजनाओं को पैकेज करने और उन्हें एनपीएम रिपोजिटरी पर प्रकाशित करने की आवश्यकता है या आप इसे स्थानीय रूप से विकसित कर सकते हैं और उन्हें एनपीएम लिंक के माध्यम से उपयोग कर सकते हैं ... यहां यमन जनरेटर जो आपकी मदद कर सकता है।

https://github.com/jvandemo/generator-angular2-library

+0

से मॉड्यूल लोड करें, आपके उत्तर के लिए धन्यवाद। यह केवल तभी सहायक होता है जब मैं यमन उत्पन्न करता हूं। लेकिन यहां मेरी परियोजना एक मौजूदा परियोजना है और मैंने कोणीय क्ली के साथ बनाया है। –

+0

यदि आप कोणीय क्ली प्रोजेक्ट को पैकेज में कनवर्ट करना चाहते हैं तो कोई समस्या नहीं है। आपको केवल 'app' निर्देशिका (anguar cli प्रोजेक्ट) से' src' निर्देशिका (इस जेनरेटर द्वारा बनाई गई प्रोजेक्ट) में कोड कॉपी करना है और हां आपको पैकेज.जेसन से निर्भरताओं की प्रतिलिपि बनाने की आवश्यकता है। – Ashwani

0

मूल रूप से आप 3 चरणों में ऐसा करना चाहते हैं:

    एक पुस्तकालय
  1. पैक में अपनी परियोजनाओं को चालू
  2. "y" और "Z" है कि एक NPM-पैकेज
  3. में पुस्तकालय
  4. दें "एक्स" है कि पुस्तकालय

यहाँ है उपभोग आप इसे कैसे संक्षेप में कार्य करें:

  1. मैं "y" और "z" से लाइब्रेरी बनाने के लिए ng-packagr का उपयोग करने की अत्यधिक अनुशंसा करता हूं। ng-packagr आपको मौजूदा Angular CLI प्रोजेक्ट लेने और इसे लाइब्रेरी में बदलने की अनुमति देता है।

      साथ
    • स्थापित पैकेज: npm install ng-packagr --save-dev
    • निम्नलिखित सामग्री के साथ ng-package.json जोड़ें:

      { 
          "$schema": "./node_modules/ng-packagr/ng-package.schema.json", 
          "lib": { 
          "entryFile": "public_api.ts" 
          } 
      } 
      
    • अपने मॉड्यूल के निर्यात के साथ public_api.ts जोड़ने मूल रूप से आप पाँच बातें क्या करना है , यानी

      export * from './src/app/modules/example/example.module' 
      
    • ऐड स्क्रिप्ट package.json रहे हैं: npm run packagr

  2. npm pack चलाकर NPM-पैकेज है जो एक y-1.0.0.tgz -file उत्पन्न होगा बनाएं, जहां y है: "packagr": "ng-packagr -p ng-package.json"

  3. स्क्रिप्ट चलाने आपके प्रोजेक्ट का नाम और 1.0.0 जो संस्करण आपने अपने package.json

  4. में सेट किया है
  5. अब आप npm install ./relative/path/to/y-1.0.0.tgz चलाकर इसे अपने प्रोजेक्ट 'एक्स' में निर्भरता के रूप में स्थापित कर सकते हैं और आप कर चुके हैं!

यह पोस्ट इस article पर आधारित है।

0

ये सभी कदम हैं, यदि इनमें से कोई भी स्पष्ट नहीं है तो मुझे बताएं।

1) घटक आप अपने पुस्तकालय परियोजना से उपयोग करना चाहते हैं निर्यात: एक बार जब आप दो CLI बनाई गई परियोजनाओं

@NgModule({ 
    ... 
    exports: [MyComponent] 
    ... 

2) स्थापित करें एनजी-packagr:

npm install ng-packagr --save-dev 

3) अपने पुस्तकालय परियोजना, ngpackage.json और public_api.ts करने के लिए दो फ़ाइलें जोड़ें:

ngpackage.json सामग्री:

{ 
    "$schema": "./node_modules/ng-packagr/ng-package.schema.json", 
    "lib": { 
    "entryFile": "public_api.ts" 
    } 
} 

4) मॉड्यूल निर्यात आप मुख्य परियोजना में उपयोग करना चाहते हैं:

export * from './src/app/modules/whatever.module' 

5) package.json फ़ाइल अपने पुस्तकालय परियोजना संपादित में इस को रोकने के लिए:

"scripts": { 
    ... 
    "packagr": "ng-packagr -p ng-package.json" 
} 

6) npm run packagr चलाएं, और एक बार प्रक्रिया पूरी होने के बाद आपको अपने प्रोजेक्ट रूट में एक डिस्ट फ़ोल्डर मिलेगा। यह आपकी घटक पुस्तकालय है।

7) cd डिस्ट फ़ोल्डर में और एनपीएम पैक चलाएं। यह dist फ़ोल्डर की रूट में एक फ़ाइल बना देगा।

8) फिर आपके पास इसे एनपीएम पर प्रकाशित करने का विकल्प है, या इसे सीधे बिटबकेट, गिथब आदि से उपभोग करें। मुख्य परियोजना के पैकेज.जेसन में निर्भरता जोड़ें।

9) एक बार स्थापित है, तो आप अपने @NgModule आयात सरणी में शामिल करके किसी भी आवेदन के app.module.ts में अपने घटक आयात कर सकते हैं, ...

import { HeaderModule } from 'my-package-name'; 
@NgModule({ 
    declarations: [ 
    AppComponent 
    ], 
    imports: [ 
    BrowserModule, 
    HeaderModule 
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 
संबंधित मुद्दे