Cucumber.js腳本提供命令行「二進制」,它是含有認領指令的簡單.js
文件:NPM包「斌」爲Windows
#!/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系統。在Windows上運行Cucumber.js時,有人報告an issue。
基本上,.js
文件似乎是通過Windows的JScript解釋器(而不是Node.js)執行的,並且由於shebang指令而引發語法錯誤。
我的問題是:建立一個適用於UNIX和Windows系統的「二進制」腳本的建議方法是什麼?
謝謝。
問題是以「.js」後綴結尾的二進制腳本名稱。 NPM基於「bin」配置指令創建了一個友好的unicix'cucumber.js'和'cucumber.js.cmd'窗口友好的二進制文件。由於Windows處理文件「擴展名」的方式,當輸入'node_modules \ .bin \ cucumber.js'時,它通過JScript而不是'.cmd'文件運行'.js'文件。感謝迂腐的後記;) – jbpros
我遇到了完全相同的問題。我試圖找到一個解決方案,不需要我告訴Windows用戶鍵入不同的命令。 在Windows Script Host中執行預佔npm生成的.cmd的JavaScript文件;我希望有一種方法可以利用它代理節點驅動的CLI: http:// stackoverflow。com/questions/24113091 /等效於unix-exec-in-jscript-windows-script-host – ELLIOTTCABLE
我如何通過nodejs而不是microsoft jscript來執行它?即使將其更改爲「node./index.js」也不能使其工作。更正:重新執行'npm link'似乎正常工作 –