mirror of
https://github.com/badlogic/pi-mono.git
synced 2026-11-05 23:37:25 +00:00
fix: isolate cross-platform native dependency install
This commit is contained in:
parent
38e8f28113
commit
95a6aa7bd0
1 changed files with 25 additions and 5 deletions
|
|
@ -97,11 +97,17 @@ fi
|
|||
if [[ "$SKIP_DEPS" == "false" ]]; then
|
||||
echo "==> Installing cross-platform native bindings..."
|
||||
CLIPBOARD_VERSION=$(node -p "require('./packages/coding-agent/package.json').optionalDependencies['@mariozechner/clipboard']")
|
||||
# npm ci only installs optional deps for the current platform
|
||||
# We need the base clipboard package and all platform bindings for bun cross-compilation
|
||||
# Use --force to bypass platform checks (os/cpu restrictions in package.json)
|
||||
# Install all in one command to avoid npm removing packages from previous installs
|
||||
npm install --include=optional --no-save --package-lock=false --force --ignore-scripts \
|
||||
# npm ci only installs optional deps for the current platform. Install the
|
||||
# cross-platform packages in isolation so npm does not re-resolve and mutate
|
||||
# the workspace dependency graph, which can trigger npm/arborist failures.
|
||||
NATIVE_DEPS_DIR=$(mktemp -d)
|
||||
cleanup_native_deps() {
|
||||
rm -rf "$NATIVE_DEPS_DIR"
|
||||
}
|
||||
trap cleanup_native_deps EXIT
|
||||
printf '%s\n' '{"private":true}' > "$NATIVE_DEPS_DIR/package.json"
|
||||
# Use --force to bypass platform checks (os/cpu restrictions in package.json).
|
||||
npm install --prefix "$NATIVE_DEPS_DIR" --include=optional --no-save --package-lock=false --force --ignore-scripts \
|
||||
@mariozechner/clipboard@"$CLIPBOARD_VERSION" \
|
||||
@mariozechner/clipboard-darwin-arm64@"$CLIPBOARD_VERSION" \
|
||||
@mariozechner/clipboard-darwin-x64@"$CLIPBOARD_VERSION" \
|
||||
|
|
@ -109,6 +115,20 @@ if [[ "$SKIP_DEPS" == "false" ]]; then
|
|||
@mariozechner/clipboard-linux-arm64-gnu@"$CLIPBOARD_VERSION" \
|
||||
@mariozechner/clipboard-win32-x64-msvc@"$CLIPBOARD_VERSION" \
|
||||
@mariozechner/clipboard-win32-arm64-msvc@"$CLIPBOARD_VERSION"
|
||||
mkdir -p node_modules/@mariozechner
|
||||
for package in \
|
||||
clipboard \
|
||||
clipboard-darwin-arm64 \
|
||||
clipboard-darwin-x64 \
|
||||
clipboard-linux-x64-gnu \
|
||||
clipboard-linux-arm64-gnu \
|
||||
clipboard-win32-x64-msvc \
|
||||
clipboard-win32-arm64-msvc; do
|
||||
rm -rf "node_modules/@mariozechner/$package"
|
||||
cp -R "$NATIVE_DEPS_DIR/node_modules/@mariozechner/$package" node_modules/@mariozechner/
|
||||
done
|
||||
cleanup_native_deps
|
||||
trap - EXIT
|
||||
else
|
||||
echo "==> Skipping cross-platform native bindings (--skip-deps)"
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue