provision: Use NVM to install node and npm.

NVM takes a specific node version and installs the node package and
a corresponding compatible npm package.

We use it in a somewhat hackish way to install node/npm globally with
a pinned version, since that's how we actually want to consume node in
our development environment.

Other details:
- Travis CI now is configured to use the version of node installed by
provision; the easiest way to do this was to sabotage the existing node
installation.
- jsdom is upgraded to a current version, which both requires recent
node and also is required for the tests to pass with recent node.
This fixes running the node tests on Xenial.

Fixes #1498.

[tweaked by tabbott]
This commit is contained in:
umkay
2016-09-20 23:44:01 -07:00
committed by Tim Abbott
parent 14dc5a73f5
commit 798e6faa9e
8 changed files with 43 additions and 40 deletions

View File

@@ -3,11 +3,10 @@ set -e
cd "$(dirname "$0")"/..
export NODE_PATH=/usr/lib/nodejs:static
export NODE_PATH=static
export PATH=$PATH:node_modules/.bin
INDEX_JS=frontend_tests/zjsunit/index.js
NODEJS=$(which nodejs || which node)
ret=0
if [ "$1" = "cover" ]; then
@@ -26,7 +25,7 @@ elif [ "$1" = "-h" -o "$1" = "--help" ]; then
else
# Normal testing, no coverage analysis.
# Run the index.js test runner, which runs all the other tests.
"$NODEJS" --stack-trace-limit=100 "$INDEX_JS" $@ || ret=1;
node --stack-trace-limit=100 "$INDEX_JS" $@ || ret=1;
fi
if [ $ret = '0' ]; then