2015-09-25 5 views
7

मेरे पास 3 उपफोल्डर्स (क्लाइंट, सर्वर, संपत्ति) के साथ एक फ़ोल्डर (एक प्रोजेक्ट) है। प्रोजेक्ट पर शुरू करने और काम करने के लिए प्रत्येक उपफोल्डर के पास एक अलग आदेश होता है जिसे मुझे 3 ऐप्स शुरू करने की आवश्यकता होती है।क्या एकाधिक उपफोल्डर में स्क्रिप्ट चलाने के लिए एनपीएम का उपयोग करना संभव है?

  • परियोजना
    • ग्राहक (आयनिक की सेवा)
    • सर्वर (नोड इंडेक्स)
    • संपत्ति (http सर्वर: यह फ़ोल्डर लेआउट और आदेशों मैं हर subproject शुरू करने के लिए का उपयोग करें -p 8082)

वर्तमान में, मैं तीनों में से प्रत्येक फ़ोल्डर में जाता हूं और प्रत्येक ऐप्स को शुरू करता हूं। प्रक्रिया को और अधिक मानक बनाने के लिए, प्रत्येक सबप्रोजेक्ट में एक स्टार्ट स्क्रिप्ट के साथ एक पैकेज.जेसन है, इसलिए मैं बस cd subfolder && npm start

मेरा प्रश्न: यह मूल फ़ोल्डर पर NPM उपयोग करने के लिए इस तरह से कि मैं सिर्फ निम्न आदेश चला और एक ही (या समान) प्रभाव हो सकता है में (यानी, किसी package.json वहाँ लिखने) संभव है?

परियोजना> NPM शुरू

मैं पैकेज parallelshell उपयोग करने की कोशिश की है, लेकिन यह काम (cd की वजह से शायद फ्लॉप:

"scripts": { 
    "start": "parallelshell 'cd app && ionic serve' 'cd api && npm start' 'cd assets && npm start'", 
} 

उत्तर

4

समस्या यह है कि सभी अपने तीन स्क्रिप्टसर्वर लॉन्चिंग की तरह स्क्रिप्ट कार्य है, जिसका अर्थ है कि वे एक बिल्ड कार्य की तरह नहीं हैं (उदाहरण के लिए) जो 10 के लिए चलता है और प्रक्रिया को रोकता है।

उनमें से हर एक के लिए, आप उन्हें लॉन्च करते हैं, और प्रक्रिया indefinitly जारी है।

आप forever की तरह कुछ के साथ एक डेमॉन रास्ता में उन सभी को लांच सकता है, लेकिन आपके मामले में, आप देव मोड (ताकि आप चाहते हैं कर रहे हैं सभी लॉग, और आप त्रुटियों नहीं करना चाहते नोडजेस सर्वर से मिश्रित आयनिक एक के साथ ...)।

मामले आप मिश्रण लॉग के बारे में कोई आपत्ति नहीं है में: https://www.npmjs.com/package/forever

20

आप "समवर्ती" का उपयोग कर सकते यह पूरा करने के (मैं इस रूप में parallelshell ... लगभग एक ही बात करता है मान लेते हैं)।

... 
"scripts": { 
    "client": "cd client && npm start", 
    "server": "cd server && npm start", 
    "assets": "cd assets && ionic serve", 
    "start": "concurrent \"npm run client\" \"npm run server\" \"npm run assets\" ", 
}, 
... 
"devDependencies": { 
    "concurrently": "^1.0.0" 
} 
... 

नोट:: तो तुम एक package.json जो की तरह निम्नलिखित दिखता बन जाएगा यह सब तीन प्रक्रियाओं समवर्ती शुरू कर देंगे जिसका मतलब है कि आप

(topheman पहले ही उल्लेख) की तरह इन तीनों का मिश्रित आउटपुट मिलता है
संबंधित मुद्दे