मैं एक अलग निर्देशिका में एनपीएम कैसे शुरू कर सकता हूं?


292

मैं आमतौर cdपर ऐप डायरेक्टरी में आता हूं और फिर रन करता हूं npm start

यह मेरी भावना है कि npm startपथ पैरामीटर के साथ चलने के लिए कुछ रास्ता होना चाहिए । लेकिन, npm शुरू प्रलेखन में ऐसी कोई सुविधा नहीं है।

मैंने केवल कोशिश की खुद को खोजने के लिए npm start ./myappकाम नहीं करता है। क्या ऐसा करने के लिए कोई रास्ता है?

जवाबों:


473

यह एक-लाइनर काम करना चाहिए:

npm start --prefix path/to/your/app

अनुरूप डॉ


18
काम नहीं कर रहा। मौजूदा निर्देशिका में package.json खोजने की कोशिश कर रहा है।
शास्वत कुमार

@ शशवत्कुमार क्या आपने कभी ऐसा करने का कार्य तरीका खोजा?
रसदार

3
मैंने इस कमांड को एक फोल्डर के package.jsonरूप में अच्छी तरह से चलाने के लिए परीक्षण किया , और npm ने सही path/to/your/appको खोजने के लिए सही तरीके से अनुसरण किया package.json। Npm के कौन से संस्करण का उपयोग कर रहे हैं?
अमौरी लिट

3
MacOS10.14.x पर नोड 10.x और npm 6.9.0 के साथ रनिंग वन-लाइनर पूरी तरह से काम करता है। धन्यवाद।
टॉड

3
--prefixयहां के लिए डॉक्स : docs.npmjs.com/misc/config#prefix
lealceldeiro

88

नीचे कमांड जहां projectएक फ़ोल्डर है जिसमें package.jsonफ़ाइल है

npm run --prefix project ${COMMAND}

साथ ही काम कर रहा है। डॉकटर आधारित अनुप्रयोगों में उपयोगी।


21

npm start --prefix path/to/your/app

& पैकेज के अंदर .json निम्नलिखित स्क्रिप्ट जोड़ें

"scripts": {
   "preinstall":"cd $(pwd)"
}

6
क्या आप बता सकते हैं कि प्रीइंस्टॉल स्क्रिप्ट क्या करती है?
जून

यह क्रॉस-प्लेटफॉर्म नहीं है। यह केवल यूनिक्स पर काम करता है न कि विंडोज जैसी विषम-गेंदों पर।
जैक गिफिन

18

मैं यहाँ Google से आया था इसलिए यह दूसरों के लिए प्रासंगिक हो सकता है: yarnआप उपयोग कर सकते हैं:

yarn --cwd /path/to/your/app run start 

6

यह एक-लाइनर भी काम करना चाहिए:

(cd /path/to/your/app && npm start)

ध्यान दें कि इस कमांड को निष्पादित करने के बाद वर्तमान निर्देशिका को / पथ / / / अपने ऐप में बदल दिया जाएगा। कार्यशील निर्देशिका को संरक्षित करने के लिए:

(cd /path/to/your/app && npm start && cd -)

मैंने इस समाधान का उपयोग किया क्योंकि एक प्रोग्राम कॉन्फ़िगरेशन फ़ाइल जिसे मैं वापस संपादित कर रहा था, फिर कमांड लाइन के तर्कों को निर्दिष्ट करने का समर्थन नहीं किया।


2
कृपया "-1" बटन का उपयोग करते समय, एक टिप्पणी जोड़ें ताकि आगंतुकों को एक सुराग मिले "यह ठीक क्यों नहीं है" ...
सिरिल चैपॉन

6
मैं नीचे नहीं था। लेकिन मेरा मानना ​​है कि साइड इफेक्ट्स की वजह से यह कम हो गया है। समाधान शुद्ध नहीं है, यह वर्तमान निर्देशिका को बदलता है।
व्लादिमीर शेरिख

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

आप cd -साइड इफेक्ट को हटाने के लिए अंत में जोड़ सकते हैं ।
बबका

@ बाबा जब तक npm startविफल नहीं होता ... आपको कई बयानों में इसे तोड़ने की जरूरत है
एंड्रियास

2

इस npm अंक सूची के अनुसार , npm कॉन्फिग के माध्यम से एक काम किया जा सकता है

name: 'foo'
config: { path: "baz" },
scripts: { start: "node ./$npm_package_config_path" }

खिड़कियों के नीचे, scriptsहो सकता है{ start: "node ./%npm_package_config_path%" }

फिर नीचे के रूप में कमांड लाइन चलाएं

npm start --foo:path=myapp

डाउनलोड किए गए पैकेज की स्क्रिप्ट क्या कर सकती है? मान लीजिए कि मैं डाउनलोड npm पैकेज से js फ़ाइल एक्सेस करना चाहता हूं
हार्दिक राणा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.