node_modulesをプロジェクトフォルダーに保存しないように、すべてのnpm依存関係をグローバルに(中央で)インストールする方法はありますか?
私が使用している会社のフレームワークは非常に重く、40を超えるプロジェクトがあり、それぞれに独自のnode_modulesフォルダーがあり、数百万の1kbファイルがパックされているため、これが問題を引き起こしています。
これはSSDの貴重なスペースを驚くほど多く消費します。プロジェクトのpackage.jsonをローカルリポジトリにリンクして、これらのパッケージを1回だけインストールできれば本当に便利です。
@alshdavidはrequire
が依存関係であり、ローカルにインストールする必要があります。 グローバルモジュールは、プロジェクト固有ではないコマンドラインツール用です。
imoこれは、yarnがグローバルモジュールをローカルディレクトリにシンボリックリンクする方法を提供しない限り、実際にはyarnの質問ではありません。これは、npmエコシステムでは機能しないことを理解するように導かれます。
これは役に立つと思います。 問題は、Node.jsは特定の方法で実行され、モジュールは特定の方法で配置されることを想定しているため、Node.jsを変更せずに実行方法を変更するのは難しいということです。 😞誰もがNode.jsを使用しているわけではないので、ディレクトリの名前をnode_modules
から別の名前に変更したいと思います。
パフォーマンスとディスク容量の潜在的な解決策として、シンボリックリンクとハードリンクに関するGitHubの問題がいくつかあります-#499はハードリンクをカバーしています。 ただし、ファイルはファイルシステム内でまだある程度のスペースを占めます。 BTRFSやZFSなどのコピーオンライトファイルシステムもこれに役立つと思います。ファイルは実際にはコピーされず、代わりにキャッシュディレクトリ内の元のファイルを指すだけだからです。
https://github.com/rstacruz/pnpmはまさにこれを行います。 --preserve-symlinks
ノード機能を使用します。
これに最も近いのは#499のように見えるので、これを支持してこれを閉じます。
最も参考になるコメント
https://github.com/rstacruz/pnpmはまさにこれを行います。
--preserve-symlinks
ノード機能を使用します。