Commit df910758 authored by David Dollar's avatar David Dollar

try new approach for node_modules cache

parent aa480b1c
#!/usr/bin/env bash
# bin/compile <build-dir> <cache-dir>
# fail fast
set -e
mktmpdir() {
dir=$(mktemp -t node-$1-XXXX)
rm -rf $dir
......@@ -19,6 +16,16 @@ function indent() {
esac
}
run_npm() {
command="$1"
HOME="$BUILD_DIR" $VENDORED_NODE/bin/node $VENDORED_NPM/cli.js $command 2>&1 | indent
if [ "${PIPESTATUS[*]}" != "0 0" ]; then
echo " ! Failed to $command dependencies with npm"
exit 1
fi
}
# clean up leaking environment
unset GIT_DIR
......@@ -65,35 +72,31 @@ export CPPPATH="$INCLUDE_PATH"
# unpack existing cache
if [ -d $CACHE_STORE_DIR ]; then
TEMP_NODE_MODULES_DIR=$(mktmpdir node_modules)
# move existing node_modules out of the way
if [ -f $CACHE_TARGET_DIR ]; then
mv $CACHE_TARGET_DIR $TEMP_NODE_MODULES_DIR/
fi
mkdir -p $CACHE_TARGET_DIR
cp -R $CACHE_STORE_DIR/* $CACHE_TARGET_DIR/
# move existing node_modules back into place
if [ -d $TEMP_NODE_MODULES_DIR/node_modules ]; then
cp -R $TEMP_NODE_MODULES_DIR/node_modules/* $CACHE_TARGET_DIR/
fi
fi
# install dependencies with npm
echo "-----> Installing dependencies with npm $NPM_VERSION"
cd $BUILD_DIR
HOME="$BUILD_DIR" $VENDORED_NODE/bin/node $VENDORED_NPM/cli.js prune 2>&1 | indent
if [ "${PIPESTATUS[*]}" != "0 0" ]; then
echo " ! Failed to prune dependencies with npm"
exit 1
fi
HOME="$BUILD_DIR" $VENDORED_NODE/bin/node $VENDORED_NPM/cli.js install 2>&1 | indent
if [ "${PIPESTATUS[*]}" != "0 0" ]; then
echo " ! Failed to install dependencies with npm"
exit 1
fi
HOME="$BUILD_DIR" $VENDORED_NODE/bin/node $VENDORED_NPM/cli.js rebuild 2>&1 | indent
cd $BUILD_DIR
run_npm install
run_npm rebuild
if [ "${PIPESTATUS[*]}" != "0 0" ]; then
echo " ! Failed to rebuild dependencies with npm"
exit 1
fi
echo " Dependencies installed"
echo "Dependencies installed" | indent
# repack cache with new assets
if [ -d $CACHE_TARGET_DIR ]; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment