Yarn: 機能リクエスト:一元化されたnode_modulesフォルダー

作成日 2016年11月29日  ·  4コメント  ·  ソース: yarnpkg/yarn

node_modulesをプロジェクトフォルダーに保存しないように、すべてのnpm依存関係をグローバルに(中央で)インストールする方法はありますか?

私が使用している会社のフレームワークは非常に重く、40を超えるプロジェクトがあり、それぞれに独自のnode_modulesフォルダーがあり、数百万の1kbファイルがパックされているため、これが問題を引き起こしています。

これはSSDの貴重なスペースを驚くほど多く消費します。プロジェクトのpackage.jsonをローカルリポジトリにリンクして、これらのパッケージを1回だけインストールできれば本当に便利です。

cat-feature help wanted needs-discussion

最も参考になるコメント

https://github.com/rstacruz/pnpmはまさにこれを行います。 --preserve-symlinksノード機能を使用します。

全てのコメント4件

@alshdavidrequireが依存関係であり、ローカルにインストールする必要があります。 グローバルモジュールは、プロジェクト固有ではないコマンドラインツール用です。

imoこれは、yarnがグローバルモジュールをローカルディレクトリにシンボリックリンクする方法を提供しない限り、実際にはyarnの質問ではありません。これは、npmエコシステムでは機能しないことを理解するように導かれます。

これは役に立つと思います。 問題は、Node.jsは特定の方法で実行され、モジュールは特定の方法で配置されることを想定しているため、Node.jsを変更せずに実行方法を変更するのは難しいということです。 😞誰もがNode.jsを使用しているわけではないので、ディレクトリの名前をnode_modulesから別の名前に変更したいと思います。

パフォーマンスとディスク容量の潜在的な解決策として、シンボリックリンクとハードリンクに関するGitHubの問題がいくつかあります-#499はハードリンクをカバーしています。 ただし、ファイルはファイルシステム内でまだある程度のスペースを占めます。 BTRFSやZFSなどのコピーオンライトファイルシステムもこれに役立つと思います。ファイルは実際にはコピーされず、代わりにキャッシュディレクトリ内の元のファイルを指すだけだからです。

https://github.com/rstacruz/pnpmはまさにこれを行います。 --preserve-symlinksノード機能を使用します。

これに最も近いのは#499のように見えるので、これを支持してこれを閉じます。

このページは役に立ちましたか?
0 / 5 - 0 評価