回答:
node_modules
ディレクトリの内容(例:)を一覧表示してみましたls -l node_modules | grep ^l
か?それらは通常のシンボリックリンクです。
すべてのシンボリックリンクを見つける必要がある場合は、のようなものを試すことができますfind / -type d -name "node_modules" 2>/dev/null | xargs -I{} find {} -type l -maxdepth 1 | xargs ls -l
。
( ls -l node_modules ; ls -l node_modules/@* ) | grep ^l
ls -l -R ./node_modules | grep ^l
グローバルにリンクされたすべてのモジュールを一覧表示するには、これが機能します(ドキュメントhttps://docs.npmjs.com/cli/ls):
npm ls -g --depth=0 --link=true
ただし、最初に自分のマシンのnpmのバージョンを更新する必要がありました。
npm install npm@latest -g
--link=true
。私の環境:Win10、NVM = 1.1.7、現在のノード= 8.14.0
npm unlink <package> -g
構文解析に代わるより良い方法ls
は、find
ようです:
find . -type l
使用できます -maxdepth 1
して、最初のディレクトリレベルのみを処理ます。
find . -maxdepth 1 -type l
-ls
追加情報に使用できます。
たとえば、npmでリンクされているノードモジュールを見つけるには:
find node_modules -maxdepth 1 -type l -ls
ここだ記事パース理由は、ls
最高のアイデアではありません
からの素敵な色の出力がnpm list
必要な場合は、次のようにすることができます。
\ls -F node_modules | sed -n 's/@$//p' | xargs npm ls -g --depth 0
私の現在の遊び場ディレクトリにそれを与えます:
+-- color@0.11.1
+-- grunt@0.4.5
+-- http-server@0.8.5
+-- jsdom@8.0.2
+-- jsonfile@2.2.3
+-- underscore@1.8.3
+-- xmlserializer@0.3.3
`-- zombie@4.2.1
これはいくつかの仮定を行いますが、ほとんどの場合に機能するか、または以下の説明に合わせて簡単に調整できるはずです。
\ls
可能なエイリアスをバイパスするために使用しますls
-F
オプションは、リンクに「@」標識を追加しますsed
コマンドは、これらのリンクを選択し、インジケータを削除しますxargs
一部は引数として以前の出力を渡しますnpm ...
npm
で呼び出されます
list
またはls
バージョン付きのモジュールを一覧表示する
ll
リストされた各モジュールの詳細を取得するには、に置き換えます。-g
グローバルモジュールと--depth 0
浅いリストの場合(オプション)--long false
(デフォルトは「list」)。 問題:なんらかの理由で、npmは現時点で無関係なエントリを表示します(色なし)。それらは、私が " npm unlink "したものになります。
現在のnpmパスにある「グローバルにインストールされたすべてのモジュールのリスト」については、次のようにします
npm list -g
さらなるニーズについては、あなたが見てみたいかもしれません
npm help folders
ファイルシステム全体をスキャンしない限り、シンボリックリンクを逆方向にたどることはできません(それはnpm固有の質問ではありません)。
ファイルとディレクトリを名前ですばやく見つけるために、私はlocate
通常1日に1回再構築されたインデックスで機能するを使用します。
locate '*/node_modules'
そこから作業を開始し--regexp
ます(オプションで検索を絞り込むことができます。
-g
に、ローカル/最も近い一時的な依存関係リンクを取得しています。ありがとう!
私自身のツールも作成した後で、この質問を見つけました。ここでは、完全性のためです。npm-list-linked。
階層内のすべてのリンクされたパッケージも再帰的に追跡します。私の作業では、npm link
2から3レベルの深さになる場合があります。これにより、ローカルなものとそうでないものを正確に確認でき、驚きを回避できます。
$ npm-list-linked
Linked packages in /home/user/projects/some-project/
@prefix/package 0.2.7
other-package 0.1.2
で作成されたfs
シンボリックリンクを確認するために使用するNode.jsモジュールを作成しましたnpm link
。
https://www.npmjs.com/package/symlinked
var symlinked = require("symlinked")
console.log(symlinked.names())
find `npm root -g` -maxdepth 2 -type l
名前空間付きパッケージを含むグローバルリンクを表示します。
@andrewの答えは時々うまくいきます:
npm ls -g --depth=0 --link=true
しかし、場合によっては、ピアdepエラーが発生しました。それが誰かを助けることを願っています!
npm -g ls
すべてのグローバルモジュールをリストする必要がありますが、リンクされたモジュールをリストするかどうかはわかりません