Oh. There are multiple problems:
1. There is no way to define deployment tokens per package. If you have an organization and want to deploy via CI/CD this can be problematic. If one token is leaked, it affects all packages
2. You cannot enforce 2FA for accounts in organization. So you also have problems if you don’t use CD.
These two problems could be addressed by the registry, the other’s are more of UX Gaps.
3. It is not easy to verify that a package contains the thing that is checked into source. We make it arguably harder by transpiling, etc.
4. It is not widely known how to use npmignore. Often packages contain unnecessary things like all of their documentation website or big images or tests. There could be better UX around that when you create packages or explore packages. The amount of temporary files published by an author in packages is just crazy.
These are the problems from the top of my head, I am sure that I could come up with more. It doesn’t mean that other package managers are better or that NPM is bad, but there is room for betterment.