I've been working more on making it easier to port node things, but have run into a bit of a conundrum on best practices.
Node has very interesting ways in which it installs dependencies. https://www.npmjs.org/doc/files/npm-folders.html While it will look in ${PREFIX}/lib/node_modules for things, if the version there doesn't happen to match what it is hoping for, or for some other reason I don't understand yet, NPM will download and install a different version into ${PREFIX}/lib/node_modules/${module}/node_modules. I'm not quite sure what to make of this or how to handle it. The Node community seems to think that installing multiple copies is a reasonable solution, "It's fine, really. They're tiny JavaScript programs". http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/ My current idea is to figure out how to force all the dependences that don't come with node itself into .../$module/node_modules and add these as additional DISTFILES that we can convince NPM to use. I believe this way we would target installing node applications rather than development libraries, if someone wishes to develop in node, they would likely be using npm to directly install their exact dependencies into their local environment anyway instead of using the package tools. One downside I can see right now is the size of node packages will get bigger and if you install many node apps there may be a bunch of duplicate code in /usr/local/lib/node_modules/*/node_modules. The biggest problem is that this makes patching dependencies difficult, that is, if multiple node apps depend on node-pg, while we needed patches for it, those patches would have been hard to handle automatically. How do other people handle these sorts of dependencies, specifically with node-keybase? l8rZ, -- andrew - http://afresh1.com The power!!!! The nightmares!!!! The strange medication!!!!!!!!
