के साथ npm {bin: script.js} को कैसे चलाएं, मैं लॉनाश कस्टम बिल्ड के समान कुछ बनाने की योजना बना रहा हूं। तो सामान्य रूप में मैं बताना चाहते हैं की तरह उपयोगकर्ता लिखने आदेश:पैरामीटर
lodash category=collection,function
कौन सा मैं सिर्फ वर्ग के साथ निर्दिष्ट
मैं NPM बिन के साथ स्क्रिप्ट को चलाने के लिए कैसे कुछ ट्यूटोरियल पढ़ा कस्टम मॉड्यूल बनाना। बस अगर मैं कुछ गलत समझता हूं तो मैं इसे लिखता हूं जो मुझे लगता है।
तो मैं इस भाग के साथ package.json अगर:
"main": "bin/index.js",
"bin": {
"snippet": "bin/index.js"
},
और मैं npm install -g
सांत्वना और कमांड टुकड़ा के लिए सुन जब मैं इसे लिखने यह फ़ोल्डर bin
में स्क्रिप्ट index.js
चलाना चाहिए।
यह हिस्सा दिखता है कि यह मेरे लिए सही तरीके से काम करता है। जब मेरे इंडेक्स.जेएस में कुछ आसान है i.e. console.log('It Works')
।
मानक स्थिति में आप उपयोगकर्ता को स्क्रिप्ट को पैरामीटर पास करने देना चाहते हैं। तो मुझे पता चला कि सभी पैरामीटर variabile process.argv
में होना चाहिए।
process.argv
संपत्ति कमांड लाइन तर्क पारित कर दिया जब Node.js प्रक्रिया शुरू की गई थी जिसमें एक सरणी देता है। पहला तत्व प्रक्रिया होगी .execPath। दूसरा तत्व जावास्क्रिप्ट फ़ाइल निष्पादित करने के लिए पथ पथ होगा। शेष तत्व कोई अतिरिक्त कमांड लाइन तर्क होंगे।
तो मैं बस console.log इसे और स्क्रिप्ट चलाता हूं।
अगर मैं आदेश के माध्यम से स्क्रिप्ट चलाने
snippet -f -a
आउटपुट है:[ 'node', 'path/to/file' ]
तो मैं
node bin/index.js -f -a
आउटपुट के माध्यम से स्क्रिप्ट चलाने है:[ 'node', 'path/to/file', '-f', '-a' ]
मुझे लगता है कि समझ में नहीं, अपने ही स्क्रिप्ट लेकिन विभिन्न आउटपुट। हालांकि मैं कोशिश करता हूं कि जब मैं बिन कमांड के माध्यम से स्क्रिप्ट को कॉल करता हूं तो यह कभी भी पैरामीटर पास नहीं करता है।
क्या कोई ऐसा व्यक्ति है जिसने इसका अनुभव किया है? और मुझे सलाह दीजिए कि मैं क्या गलत कर रहा हूं?
या वैकल्पिक रूप से ऐसा करने का कोई और तरीका है?
किसी भी सलाह के लिए धन्यवाद।
यह ठीक दिखता है। क्या आपने अन्य झंडे, या लंबे लोगों के साथ कोशिश की? शायद आप आरक्षित नामों का उपयोग कर रहे हैं। (यानी [मोचा स्रोत स्क्रिप्ट] (https://github.com/mochajs/mocha/blob/master/bin/mocha))। क्या आप कुछ उदाहरण कोड दिखा सकते हैं? – Dario
हे @ डारियो आपके उत्तर के लिए धन्यवाद। मैंने यादृच्छिक अन्य पात्रों के साथ कोशिश की। मैंने बस mz package.json संपादित किया और उसी फ़ाइल में रन टेस्ट जोड़ें। यहां तक कि यह सही ढंग से काम करता है, उदाहरण के लिए यदि मैं एनपीएम रन टेस्ट श्रेणी = यह आईएसओएन कहता हूं, तो यह मुझे यह तर्क दिखाता है, अगर मैं स्निपेट के साथ एनपीएम रन टेस्ट को प्रतिस्थापित करता हूं तो यह काम नहीं करता है – Andurit
हे @ डारियो मुझे एक समाधान मिला :) सुनिश्चित नहीं है कि मैं इसे सबसे आसान तरीके से ठीक करें लेकिन यह काम करता है। मदद के लिए शुक्रिया – Andurit