ジェネレーターは、グローバルにインストールされるように設計されています。そうしないと、各プロジェクトで使用しようとしているジェネレーターを常にインストールする必要があり、これは不必要に苦痛です。また、利用可能なすべてのジェネレーターを一覧表示する素敵なyo
メニューも表示されません (もちろん、それらをすべてローカルにインストールしない限り)。
グローバル インストール用の npm のセットアップ
では、npm にパッケージをグローバルにインストールさせるにはどうすればよいでしょうか。あなたが正しく言ったように、決してyo
sudo で実行してはいけません。この問題にはさまざまな解決策があり、それらの長所と短所を宗教的に議論するのに何時間も費やすことができます.
個人的には、ユーザーパッケージをグローバル /usr/
フォルダーにインストールするのは好きではありません。/usr/
コンピューター上のすべてのユーザー間で共有されるソフトウェア用です。マシンのみを使用している場合でも、Unix ファイル システム階層の設計方法を尊重する十分な理由があります。たとえば、ある時点でノードのインストール全体を消去することを決定した場合。
中断せずにnpm
パッケージをグローバルにインストールできるようにする私の推奨方法は、ローカル ノード プレフィックスを設定することです。これは実行するのと同じくらい簡単です$HOME
echo 'prefix = ~/.node' >> ~/.npmrc
ローカルシェルで。その後、お気に入りのシェルの構成を調整して、$PATH を調整し、グローバル ノード実行可能ファイルの新しいインストール先を指すようにします。たとえば、追加することによって
export PATH="$PATH:$HOME/.node/bin"
あなたに~/.bashrc
。その後、npm install -g generator-angular
sudo なしで、パーミッションの競合に遭遇することなく問題なく実行できます。また、何かが完全に壊れていて、最初からやり直したい場合は、~/.node
ディレクトリを削除するだけで済みます。