シェルから実行する必要があるノードパッケージを開発しています。パッケージをグローバルにインストールする必要があることはわかっていますが、実行中です
$> npm install -g ./my_module
実行中の望ましい結果が得られません
$> my_module
結果は
my_module: : command not found
index.js
ノードパッケージのエントリポイント()を実行する代わりに。
ここで明らかな何かが欠けているような気がしますが、何が間違っているのですか?
正しいpackage.json
構成をセットアップした後(主にを使用して{"bin": {...}}
)、それをNPMレジストリーに公開してから、再度ダウンロードして機能することを確認する必要はありません。
npm link
まさにこの状況のために作られました。公式ドキュメントに記載されているように:
npm link
パッケージフォルダ内にあると、グローバルフォルダ{prefix} / lib / node_modules /にシンボリックリンクが作成され、npmlinkコマンドが実行されたパッケージにリンクします。
あなたがこのプロジェクトを持っていると仮定します:
-- my_module
-- -- index.js
-- -- cli.js
-- -- package.json
そしてあなたはこれを持っていますpackage.json
:
{
"name": "my_module",
"preferGlobal": true,
"bin": {
"my_module": "cli.js"
},
}
実行:
cd my_module
次に:
npm link
これで、npmはパッケージをマシンにグローバルにインストールします。それはチェックしますpackage.json
のためbin
のエントリー、およびそれがリンクするmy_module
にはcli.js
ファイル。これは、グローバルnpmディレクトリに現在のディレクトリへのシンボリックリンクを作成することで発生します。
コマンドラインで実行する場合:
my_module
cli.js
ファイルを指します。cli.js
内容を変更した場合は、次に実行したときに反映されmy_module
ます。名前my_module
をmy_module2
に変更した場合はnpm unlink
、npm link
もう一度使用してください。
別の注意点として、npmはパッケージ名として完全なURLを使用でき、npmレジストリを確認する代わりに、完全なURLを使用してパッケージをダウンロードおよびインストールします。たとえば、独自のプライベートGitホストからパッケージをインストールできます。
npm install -g https://github.com/Me/my_module
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加