Node NPM rocks
techno-weenie.net
techno-weenie.net
Why would you want package.json to list native dependencies, shouldn't that be the responsibility of the npm package author? Usually npm packages that compile to native code will run 'make' on 'npm install'.
Another reason that you would NOT want this is because npm packages could potentially use older conflicting versions of the same library. NPM can manage this internally -- you wouldn't want rpm to install 2 different versions of the same package globally.
In the contrived example below, cluster & express are using 2 different versions of the 'log' npm package, but the main system using cluster & express have no clue that there are 2 different versions installed.
├─┬ cluster@0.6.9
│ └── log@1.2.0
├── ejs@0.4.3
└─┬ express@2.0.0
├── log@1.0.0
├── connect@1.1.0
└── qs@0.3.0Its management and mixture of git/gems can make things a bit complicated.
Not to mention that it plays with your environment variables (RUBYLIB) making things not as transparent as npm.
Node really endorsed npm and both worked together. RubyGems until 1.9.1 was never part of "Ruby", even while is extensively used as package manager.
Worse than that, Ruby-Core doesn't use it and cripples it to avoid the startup pain it could be, instead of making it integral part of Ruby.