mirror of
https://github.com/home-assistant/frontend.git
synced 2026-09-30 16:59:17 +01:00
* Migrate from Yarn to pnpm Switch the package manager to pnpm 11, keeping every resolved dependency version from yarn.lock. - Move resolutions to pnpm overrides and Yarn patches to patches/ - Enable supply-chain protection: 3 day minimum release age, trust policy that blocks provenance downgrades, and dependency build scripts denied by default - Declare dependencies that were imported but only available through Yarn's hoisting: zrender, @lezer/common, zxing-wasm, @babel/helper-compilation-targets, core-js-compat, @types/geojson - Look up pinned license overrides in pnpm's node_modules layout - Update CI, scripts, git hooks, Renovate, and documentation * Cache the pnpm store with node_modules in CI Jobs that restore the shared node_modules cache skip the install, so the pnpm store is empty there. The license file generation runs `pnpm licenses list`, which reads package metadata from the store and fails without it. * Point the demo e2e comment at the real test:e2e:demo script --------- Co-authored-by: Claude <noreply@anthropic.com>
33 lines
948 B
Bash
Executable File
33 lines
948 B
Bash
Executable File
#!/bin/bash -i
|
|
# Resolve all frontend dependencies that the application requires to develop.
|
|
|
|
# Stop on errors
|
|
set -e
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
# Install/upgrade node when inside devcontainer
|
|
if [[ -n "$DEVCONTAINER" ]]; then
|
|
nodeCurrent=$(nvm version default || :)
|
|
nodeLatest=$(nvm version-remote "$(cat .nvmrc)")
|
|
if [[ -z "$nodeCurrent" || "$nodeCurrent" == "N/A" ]]; then
|
|
nvm install
|
|
elif [[ "$nodeCurrent" != "$nodeLatest" ]]; then
|
|
nvm install --reinstall-packages-from="$nodeCurrent" --default
|
|
nvm uninstall "$nodeCurrent"
|
|
fi
|
|
|
|
# install pnpm if not already available
|
|
if ! command -v pnpm &> /dev/null; then
|
|
npm install -g corepack
|
|
corepack enable pnpm
|
|
fi
|
|
fi
|
|
|
|
if ! command -v pnpm &> /dev/null; then
|
|
echo "Error: pnpm not found. Please install it following the official instructions: https://pnpm.io/installation" >&2
|
|
exit 1
|
|
fi
|
|
# Install node modules
|
|
pnpm install
|