Cucumber.js es el suministro de una línea de comandos "binario", que es un simple archivo que contiene una .js
tinglado instrucción:NPM paquete de scripts 'bin' para Windows
#!/usr/bin/env node
var Cucumber = require('../lib/cucumber');
// ...
El binario se especifica en package.json
con la clave de configuración "bin"
:
{ "name" : "cucumber"
, "description" : "The official JavaScript implementation of Cucumber."
// ...
, "bin": { "cucumber.js": "./bin/cucumber.js" }
// ...
todo esto funciona bien en sistemas POSIX. Alguien reportó an issue cuando ejecuta Cucumber.js en Windows.
Básicamente, el archivo .js
parece ejecutarse mediante el intérprete JScript de Windows (no Node.js) y arroja un error de sintaxis debido a la instrucción shebang.
Mi pregunta es: ¿cuál es la forma recomendada de configurar un script "binario" que funcione en sistemas UNIX y Windows?
Gracias.
El problema fue que el nombre del script binario terminaba con el sufijo ".js". NPM crea tanto un binario compatible con Windows 'cucumber.js' como un 'cucumber.js.cmd' compatible con Windows basado en la instrucción de configuración" bin ". Debido a la forma en que Windows maneja las "extensiones" de archivos, cuando se tipeaba 'node_modules \ .bin \ cucumber.js' ejecutaba el archivo' .js' a través de JScript en lugar del archivo '.cmd'. Gracias por la posdata pedante;) – jbpros
Me encontré con exactamente este mismo problema. Estoy tratando de encontrar una solución que no requiera que le diga a los usuarios de Windows que escriban un comando diferente. Los archivos JavaScript que prevalecen sobre los .cmd generados por npm se ejecutan en Windows Script Host; Espero que haya una manera de aprovechar eso para proxy a la CLI con Node-powered: http: // stackoverflow.com/questions/24113091/equivalent-of-unix-exec-in-jscript-windows-script-host – ELLIOTTCABLE
¿cómo puedo hacer que se ejecute por nodejs en lugar de microsoft jscript? incluso cambiarlo a 'node./index.js' no lo hace funcionar. corrección: volver a ejecutar el enlace 'npm' parece funcionar –