Re:Node v4.0.0
by blowski on Tuesday September 08, 2015 @04:26PM
(#10188029)
You seemingly have much more experience with Node than me. Perhaps my amateur anecdotes are just bad luck, but certainly my Bash scripts that talk to Node break frequently.
[ Parent
| on HN ]
Bash scripts talking to Node sounds like a recipe for disaster.
Why?
Please explain.
I think the npm project should document best practices, like when to use "*" version, when to use npm-shrinkwrap, etc... to limit problems.
NPM is a very powerful tool. In fact, it's our deploy tool: we run `npm install` on servers (private Sinopia npm repository) to deploy. But to do that, you must follow many many rules that are written nowhere.
We used to do this and it caused a lot of issues. Shrinkwrap is a must to keep versions stable. NPM and network unreliability can cause failed installs, as well as other issues.
Our first major improvement to this work flow was a tar of the app with all of the dependencies coupled with `npm rebuild` after unpacking. This worked quite well.
However, recently, we have switched to using Docker to generated this sealed packages which is working great.
We've never really had a problem... Our sinopia npm server is probably isolating some network problems, plus we don't start/update servers that often.
Our NPM workflow also ensures builds are easy to replicate. Most problems in development occur because of obsolete versions of some packages (our apps contain many private modules)... Clean npm-installs shields us from that in production.