Windows 用の NPM パッケージ 'bin' スクリプト 質問する

Windows 用の NPM パッケージ 'bin' スクリプト 質問する

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

おすすめ記事