Cucumber.js jest dostarczanie wiersza polecenia „binarny”, który jest prosty .js
plik zawierający shebang instrukcji:NPM pakiet „bin” skrypt dla Windows
#!/usr/bin/env node
var Cucumber = require('../lib/cucumber');
// ...
binarny jest określona w package.json
z klucz konfiguracji:
{ "name" : "cucumber"
, "description" : "The official JavaScript implementation of Cucumber."
// ...
, "bin": { "cucumber.js": "./bin/cucumber.js" }
// ...
Wszystko to działa dobrze w systemach POSIX. Ktoś zgłosił an issue podczas uruchamiania Cucumber.js w systemie Windows.
Zasadniczo plik .js
wydaje się być wykonywany przez interpreter JScript w systemie Windows (nie Node.js) i generuje błąd składni z powodu instrukcji shebang.
Moje pytanie brzmi: jaki jest zalecany sposób skonfigurowania skryptu "binarnego", który działa zarówno w systemach UNIX, jak i Windows?
Dzięki.
Problemem była nazwa skryptu binarnego zakończona przyrostkiem ".js". NPM tworzy przyjazne dla systemu UNIX pliki binarne "cucumber.js" i "cucumber.js.cmd" na podstawie instrukcji konfiguracyjnej "bin". Z powodu sposobu, w jaki system Windows obsługuje rozszerzenia plików, po wpisaniu 'node_modules \ .bin \ cucumber.js' uruchomił plik' .js' za pośrednictwem JScript zamiast pliku '.cmd'. Dzięki za pedantyczny postscript;) – jbpros
Wpadłem na dokładnie ten sam problem. Próbuję znaleźć rozwiązanie, które nie wymagałoby od użytkowników systemu Windows wpisywania innego polecenia. Pliki JavaScript przed pobraniem pliku .cmd generowane są w Hosta skryptów systemu Windows; Mam nadzieję, że istnieje sposób na wykorzystanie tego do proxy do interfejsu CLI z interfejsem Node: http: // stackoverflow.com/questions/24113091/equivalent-of-unix-exec-in-jscript-windows-script-host – ELLIOTTCABLE
jak mogę go wykonać przez nodejs zamiast microsoft jscript? nawet zmiana go na 'node./index.js' nie sprawia, że działa. korekta: ponowne wykonanie '' Npm link' wydaje się działać –