7

コマンドgruntがgrunt.jsファイルと同じパスのWindowsシェルで実行される場合、WindowsはWindowsスクリプトホストを使用してgrunt.jsを実行することを選択します。推奨されるパスは、を明示的に呼び出すことgrunt.cmdです。

それはすべて問題なくダンディですが、NPM package.jsonでOSに依存しないスクリプトコマンドを作成したい場合はどうすればよいですか?* nixでも実行したい場合は、これを行うことはできません。

"scripts": {
    "dox": "grunt.cmd dox"
}

ポインタはありますか?または、私が見逃しているパズルの大きな部分はありますか?(私はNPMとGruntの両方に等しく慣れていません)。

4

2 に答える 2

8

私はgrunt.batただ呼び出すファイルを作成することで解決策を見つけましたgrunt.cmd

@ grunt.cmd%*

したがって、Windowsでは、gruntWindows Scripting Hostによる。の取得よりも優先度が高くなるため、呼び出すだけでバッチファイルがトリガーされますgrunt.js。Linuxでは、通常のgruntバイナリが取得されます。これは現在、クロスプラットフォームで機能します。

于 2012-11-10T04:40:20.183 に答える
0

同じ問題が発生します。パッケージのルートディレクトリにファイルがあり、呼び出しだけでtslint.jsnpmスクリプトがある場合、jscriptはノードではなくnpmによって起動され、「MicrosoftJScriptコンパイルエラー」ポップアップが表示されます。package.jsontslint

回避策は、環境変数.JSから削除することです。PATHEXT

于 2019-02-25T15:49:48.110 に答える