2013-01-08 16 views
9

क्या node.js स्क्रिप्ट के लिए आवश्यक मॉड्यूल स्वचालित रूप से डाउनलोड करना संभव है? मैं सोच रहा हूं कि node.js स्क्रिप्ट (नीचे दिए गए की तरह) के लिए आवश्यक मॉड्यूल की एक सूची जेनरेट करना संभव है, और उन्हें मैन्युअल रूप से इंस्टॉल करने के बजाय स्वचालित रूप से इंस्टॉल करें, एक-एक-एक (एनपीएम का उपयोग करके)।क्या node.js स्क्रिप्ट के लिए आवश्यक मॉड्यूल स्वचालित रूप से स्थापित करना संभव है?

#!/usr/bin/env node 

var DNode = require('dnode'); 
var sys = require('sys'); 
var fs = require('fs'); 
var http = require('http'); 

var html = fs.readFileSync(__dirname + '/web.html'); 
var js = require('dnode/web').source(); 

//the rest of this script is omitted. 
+0

संभावित डुप्लिकेट http://stackoverflow.com/questions/13189239/possible-to-install-all-missing- के लिए एक स्क्रिप्ट Ritten मॉड्यूल-फॉर-ए-नोड-एप्लिकेशन) –

उत्तर

13

हाँ, वहाँ है कोड का एक बड़ा टुकड़ा के लिए NPM कहा जाता है वास्तव में यह: https://npmjs.org/

आप एक package.json फ़ाइल में निर्भर पैकेज (वाक्य रचना के लिए see the docs) निर्दिष्ट करें और आप npm install . का उपयोग उन सब में खींचने के लिए कर सकते हैं एक बार में, और फिर require उन्हें आपकी स्क्रिप्ट से।

Package.json वाक्य रचना पेज: https://docs.npmjs.com/getting-started/using-a-package.json

पहली बार जब आप एक मॉड्यूल स्थापित करते हैं, अपने को स्थापित करने के मॉड्यूल के किसी भी संख्या प्रदान कर सकते हैं, और अपने आप आपके package.json

npm i --save dnode request bluebird 
में जोड़ने के लिए --save तर्क जोड़ने

अगली बार, किसी npm i निष्पादित करेंगे यह स्वचालित रूप से सभी में निर्दिष्ट मॉड्यूल स्थापित हो जाएगा अपने package.json

+0

क्या ऐसी स्क्रिप्ट के लिए निर्भरताओं की सूची जेनरेट करने का कोई तरीका है जिसमें 'package.json' फ़ाइल नहीं है? यही वह है जो मैं वास्तव में यहां खोजने की कोशिश कर रहा हूं, क्योंकि मैं सिर्फ एक फ़ाइल के साथ काम कर रहा हूं। –

+0

मुझे आशा है कि एक मॉड्यूल के लिए 'package.json' फ़ाइल जेनरेट करना संभव होगा जिसमें अभी तक' package.json' फ़ाइल संबद्ध नहीं है। –

+1

यदि आप स्क्रिप्ट की शुरुआत में सभी मॉड्यूल की आवश्यकता के मुसीबत में जा रहे हैं, तो क्यों न केवल अपनी पैकेज फ़ाइल में उनको रिकॉर्ड करें? क्या आप निष्पादन के दौरान अपनी स्क्रिप्ट की निर्भरताओं को पार्स करने और लाने के लिए कुछ स्वैच्छिक तरीके से जा रहे हैं? 'package.json' भी उपयोगी है क्योंकि आप अपनी निर्भरताओं के संस्करण निर्दिष्ट कर सकते हैं, और भविष्य में अपनी स्क्रिप्ट चलाने पर चीजें तोड़ नहीं सकती हैं। –

6

मैं w है [एक नोड आवेदन के लिए सभी लापता मॉड्यूल स्थापित करने के लिए संभव?] (के इस

(function(){ 
    var r = require 
    require = function (n){ 
     try{ 
      return r(n) 
     } 
     catch(e){ 
      r('child_process').exec('npm i ' + n,function (err,body){ 
       try{ 
        console.log('Module "' +n + '"" not found, try to install. Please restart the app\n' + body) 
        return r(n) 
       } 
       catch(e){ 
       } 
      }) 
     } 
    } 
})() 
संबंधित मुद्दे