npm v7 Series - Why Keep package-lock.json?
yarn.lockとpackage-lock.jsonの違い
yarn.lockはパッケージバージョンの一意な解決が保証される
package-lock.jsonは加えてnode_modulesのレイアウトも一意に保証する
lefb766.icon
node_modulesのレイアウトが一意じゃないことの問題は、package.jsonに書かれていないモジュールも暗黙的にrequireできてしまうことが根本だという気がする
明示的に宣言されたパッケージしかrequireできないように(node_modules直下に展開しないように)できるといい
npm alternativeのアプローチ
pnpmはすべてのパッケージをnode_modules/.pnpmに書き込んで、よしなにsymlinkを張ることでこれを実現している
パッケージ置き場のパスはwell knownじゃないと問題が起こるかも
node_modules/を走査するツールが誤動作したりする
node_modulesをFUSEで仮想化するのが機能的に最良の解決法
実装がOS別になってしまうしピュアNode.jsでは多分実装不可
Mac版FUSE
WindowsのProjFS