2013-09-02 15 views
16

मैं/मेरी परियोजना निर्देशिका के अंदर/घर/ईवान से NPM का उपयोग कर एक्सप्रेस पैकेज स्थापित करने का प्रयास इंस्टॉल पैकेज:NPM बाहर वर्तमान निर्देशिका

npm install express 

[email protected] ../node_modules/express 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] ([email protected]) 
└── [email protected] ([email protected]) 

अजीब बात NPM वर्तमान dir में एक्सप्रेस पैकेज स्थापित नहीं करता है (/ home/iwan/my-project/node_modules/express), लेकिन/home/iwan/node_modules/express में।

क्या मुझे कुछ याद आया?

उत्तर

47

यदि node_modules निर्देशिका आपकी वर्तमान निर्देशिका में मौजूद नहीं है, तो एनपीएम इसे तब तक उच्च निर्देशिका में देखेगा जब तक कि उसे यह न मिल जाए। इसलिए, यदि मूल निर्देशिका में node_modules निर्देशिका है, तो एनपीएम मान लेगा कि यह मॉड्यूल स्थापित करना है।

इसके आस-पास एक त्वरित तरीका खाली node_modules निर्देशिका बनाना है जहां आप मॉड्यूल रखना चाहते हैं।

+0

आह, धन्यवाद @ ब्रैड। अब यह स्पष्ट है। –

+1

वास्तव में मैं यहां Google से विपरीत व्यवहार की तलाश में आया था, इसलिए मुझे इंस्टॉलेशन से पहले 'cd ..' जाने की ज़रूरत नहीं है। समाधान फिर से था - जैसा कि यह उत्तर बताता है - मूल निर्देशिका में 'node_modules' बनाने के लिए। –

+0

नहीं यह काम नहीं करता है। अगर मैं अपने कमांड प्रॉम्प्ट फ़ोल्डर में स्थापित 'npm install --save redux' स्थापित करता हूं ('node_modules' फ़ोल्डर बनाकर), और मूल निर्देशिका में मौजूद' node_modules' फ़ोल्डर्स को चेक नहीं किया है। –

2

मुझे विश्वास है कि npm के साथ पैकेज स्थापित करने का सबसे अच्छा तरीका package.json फ़ाइल बनाना है। इस तरह, इसे अपने ऐप के रूप में smae निर्देशिका में डालें। एक नमूना package.json फ़ाइल ऐसा दिखाई दे सकता:

{ 
    "name": "application-name", 
    "version": "0.0.1", 
    "private": true, 
    "scripts": { 
    "start": "node app.js" 
    }, 
    "dependencies": { 
    "express": "3.3.5", 
    "jade": "*", 
    "less-middleware": "*", 
    "ejs": "*", 
    "mongoose": "3.6.*" 
    } 
} 

निर्भरता सूची पर एक नजर डालें। बस इच्छित मॉड्यूल जोड़ें, उदाहरण के लिए, underscore। बस इसे निर्भरता निर्देश में जोड़ें। इसलिए जैसा:

{ 
    "name": "application-name", 
    "version": "0.0.1", 
    "private": true, 
    "scripts": { 
    "start": "node app.js" 
    }, 
    "dependencies": { 
    "express": "3.3.5", 
    "jade": "*", 
    "less-middleware": "*", 
    "ejs": "*", 
    "mongoose": "3.6.*", 
    "underscore": "*" <-------------- Added 
    } 
} 

फिर अपने निर्देशिका को सामने और बस npm install, और bam चलाने! सभी संकुल और उनकी निर्भरता आपके लिए स्थापित की जाएगी। यह सभी काम करेगा, और इसका मतलब है कि आपके लिए node_modules फ़ोल्डर बनाना। इस तरह मेरे ऐप निर्देशिका की तरह लग रहा है:

enter image description here

+0

बढ़िया! धन्यवाद। package.json ऐप को अधिक स्पष्ट और जानकारीपूर्ण बनाता है। –

+0

@ कुर्नियावान जुनाडेय अगर यह आपके लिए काम करता है, तो कृपया उत्तर दें और जवाब स्वीकार करें। –

+1

कृपया इस उदाहरण का उपयोग न करें। यदि आप उत्पादन में अपने पैकेज के लिए * का उपयोग कर रहे हैं, तो आप अंततः परिवर्तनों को तोड़ने और उन्हें ठीक करने में बहुत अधिक समय व्यतीत करेंगे। यदि आप सक्रिय विकास में हैं और यह सुनिश्चित करना चाहते हैं कि आपके पैकेज सभी अद्यतित हैं, निश्चित रूप से, तारों, टिल्ड, या गाजर का उपयोग करें, लेकिन उन्हें उत्पादन में न छोड़ें। – SgtPooki

0

तुम भी https://docs.npmjs.com/files/package.json वेबपेज से दिशा-निर्देशों का उपयोग कर एक खाली package.json फ़ाइल बना सकते हैं। फिर इसे अपने प्रोजेक्ट फ़ोल्डर में रखें और npm install टाइप करें।

संबंधित मुद्दे