Cucumber.js के लिए स्क्रिप्ट एक कमांड लाइन की आपूर्ति कर रहा है "बाइनरी" जो एक सरल .js
एक मामला अनुदेश युक्त फ़ाइल है:NPM पैकेज 'बिन' विंडोज
#!/usr/bin/env node
var Cucumber = require('../lib/cucumber');
// ...
द्विआधारी साथ package.json
में निर्दिष्ट किया जाता "bin"
कॉन्फ़िगरेशन कुंजी:
{ "name" : "cucumber"
, "description" : "The official JavaScript implementation of Cucumber."
// ...
, "bin": { "cucumber.js": "./bin/cucumber.js" }
// ...
यह सब POSIX सिस्टम पर अच्छी तरह से काम करता है। विंडोज़ पर Cucumber.js चलाते समय किसी ने an issue की सूचना दी।
असल में, .js
फ़ाइल विंडोज के जेस्क्रिप्ट दुभाषिया (नोड.जेएस नहीं) के माध्यम से निष्पादित की जाती है और यह शेबैंग निर्देश के कारण वाक्यविन्यास त्रुटि फेंकता है।
मेरा प्रश्न है: "बाइनरी" स्क्रिप्ट स्थापित करने का अनुशंसित तरीका क्या है जो यूनिक्स और विंडोज सिस्टम दोनों पर काम करता है?
धन्यवाद।
समस्या ".js" प्रत्यय के साथ समाप्त होने वाली बाइनरी स्क्रिप्ट नाम थी। एनपीएम "बिन" कॉन्फ़िगरेशन निर्देश के आधार पर एक यूनिक्स-अनुकूल 'cucumber.js' और' cucumber.js.cmd' विंडोज-फ्रेंडली बाइनरी दोनों बनाता है। विंडोज़ "एक्सटेंशन" फ़ाइल को कैसे प्रबंधित करता है, जब किसी ने 'node_modules \ .bin \ cucumber.js' टाइप किया था, तो यह' .cmd 'फ़ाइल के बजाय जेस्क्रिप्ट के माध्यम से' .js' फ़ाइल चला रहा था। पैडेंटिक पोस्टस्क्रिप्ट के लिए धन्यवाद;) – jbpros
मैं बिल्कुल इसी मुद्दे में भाग गया। मैं एक समाधान खोजने की कोशिश कर रहा हूं जिसके लिए मुझे विंडोज उपयोगकर्ताओं को एक अलग कमांड टाइप करने की आवश्यकता नहीं है। विंडोज स्क्रिप्ट होस्ट में एनपीएम-जेनरेटेड .cmd को पूर्व-खाली करने वाली जावास्क्रिप्ट फ़ाइलें निष्पादित की जाती हैं; मुझे आशा है कि नोड-संचालित सीएलआई को प्रॉक्सी करने के लिए इसका लाभ उठाने का एक तरीका है: http: // stackoverflow।कॉम/प्रश्न/241130 9 1/समकक्ष-यूनिक्स-निष्पादन-इन-जेएसक्रिप्ट-विंडोज-स्क्रिप्ट-होस्ट – ELLIOTTCABLE
मैं इसे माइक्रोसॉफ्ट जेस्क्रिप्ट के बजाय नोडजेज़ द्वारा कैसे निष्पादित कर सकता हूं? यहां तक कि इसे 'नोड'/index.js' में बदलना भी इसे काम नहीं करता है। सुधार: –