Cucumber.jsは、コマンドラインの「バイナリ」を提供します。これは.js
、シバン命令:
#!/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 を実行する場合。
基本的に、.js
ファイルは Windows の JScript インタープリター (Node.js ではない) を介して実行されるようで、shebang 命令のために構文エラーが発生します。
私の質問は、UNIX システムと Windows システムの両方で動作する「バイナリ」スクリプトを設定するための推奨される方法は何ですか?
ありがとう。
ベストアンサー1
Windowsはシェバン行を無視し#!/usr/bin/env node
、ファイルの関連付けに従って実行します.js
。スクリプトをノードで呼び出す場合は明示的に指定してください。
node hello.js
追伸:衒学的:シェバンないPOSIX 標準ではサポートされていませんが、ほとんどの *nix システムでサポートされています。
プロジェクトをNpm用にパッケージ化する場合は、パッケージ.jsonWindowsでは、Npmは.cmd
スクリプトと一緒にラッパーをインストールし、ユーザーがコマンドラインから実行できるようにします。
hello
npmがshimを正しく作成するには、スクリプトにはシェバン行が必要です #!/usr/bin/env node