3

NPMに公開されるノードでCLIを開発しています。これはCLIアプリケーションなので、インストール後にパスに含めたいので、実行するために「nodemy-app.js」と入力する必要はありません。「my-app」だけで実行したい。

package.jsonには、次のものが含まれています。

"bin": { 
    "my-all" : "./my-app.js" 
 },

しかし、これにより、このエラーでNPMを介したインストールが失敗します

エラー:ENOENT、chmod'/ home / user1 / node_modules / my-app / my-app'

4

1 に答える 1

3

ある種のUNIX(linux、osx)を使用していると仮定して、スクリプトの先頭に次の行を配置します。

#!/usr/bin/env node

また、ファイルを実行可能ファイル(chmod a+x my-all)に設定していることを確認してください。

これで、と入力する必要がなくなり、node my-app.js代わりにと入力できるようになります./my-app.js

npmのパッケージについては、なぜ失敗するのかわかりませんが、my-app.jsのパスまたは場所に問題があると思います。

実行可能スクリプトがPATHのどこかに配置されている場合、それは他のものと同じように実行されます。を実行するwhich npmと、npm実行可能スクリプトがどこにあるかがわかります。私のシステムでは、ほとんどのノード実行可能ファイル(または実行可能npmスクリプト)は/ usr / local/binに入ります。package.jsonパスのどこかに配置するように設定できると思います。パスを変更する必要がある場合は、、.profileまたはシステムパスを変更してください。

于 2012-07-21T22:49:09.403 に答える