# Node, the harness's and the pages' packages, and the pages built, in # Playwright's image, for linux.sh and look.sh to source. Node and the # packages go where the image keeps them between runs: /opt/node, and # node_modules, installed again when a lockfile changes. [ -x /opt/node/bin/node ] || curl -fsSL https://nodejs.org/dist/v24.22.1/node-v24.22.1-linux-x64.tar.gz | tar -xz -C /opt/node --strip-components 1 export PATH=/opt/node/bin:$PATH for dir in web harness; do lock=$(sha256sum $dir/package-lock.json) [ "$(cat $dir/node_modules/.lock 2>/dev/null)" = "$lock" ] && continue (cd $dir && npm ci --no-audit --no-fund) echo "$lock" > $dir/node_modules/.lock done (cd web && npm run build)