fix windows extensions (#1968)
This commit is contained in:
Executable
+101
@@ -0,0 +1,101 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Script to prepare Windows npm bundle
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PLATFORM_WIN_DIR="$SCRIPT_DIR/../src/platform/windows"
|
||||
WIN_BIN_DIR="$PLATFORM_WIN_DIR/bin"
|
||||
DEST_BIN_DIR="$SCRIPT_DIR/../src/bin"
|
||||
|
||||
echo "Preparing Windows npm bundle..."
|
||||
echo "SCRIPT_DIR: $SCRIPT_DIR"
|
||||
echo "PLATFORM_WIN_DIR: $PLATFORM_WIN_DIR"
|
||||
echo "WIN_BIN_DIR: $WIN_BIN_DIR"
|
||||
echo "DEST_BIN_DIR: $DEST_BIN_DIR"
|
||||
|
||||
# Ensure directories exist
|
||||
mkdir -p "$WIN_BIN_DIR"
|
||||
|
||||
# Node.js version and paths
|
||||
NODE_VERSION="23.10.0"
|
||||
NODE_MSI_URL="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-x64.msi"
|
||||
|
||||
# Create Windows Node.js installer script
|
||||
echo "Creating install-node.cmd..."
|
||||
cat > "$WIN_BIN_DIR/install-node.cmd" << 'EOL'
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM Check if Node.js is installed in Program Files
|
||||
if exist "C:\Program Files\nodejs\node.exe" (
|
||||
echo Node.js found in Program Files
|
||||
set "NODE_EXE=C:\Program Files\nodejs\node.exe"
|
||||
goto :found
|
||||
)
|
||||
|
||||
REM Check if Node.js is installed in Program Files (x86)
|
||||
if exist "C:\Program Files (x86)\nodejs\node.exe" (
|
||||
echo Node.js found in Program Files (x86)
|
||||
set "NODE_EXE=C:\Program Files (x86)\nodejs\node.exe"
|
||||
goto :found
|
||||
)
|
||||
|
||||
echo Node.js not found in standard locations, installing...
|
||||
|
||||
REM Download Node.js MSI installer
|
||||
powershell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%1' -OutFile '%TEMP%\node-setup.msi'}"
|
||||
|
||||
REM Install Node.js silently
|
||||
msiexec /i "%TEMP%\node-setup.msi" /qn
|
||||
|
||||
REM Wait a bit for installation to complete
|
||||
timeout /t 5 /nobreak
|
||||
|
||||
REM Clean up
|
||||
del "%TEMP%\node-setup.msi"
|
||||
|
||||
REM Set path to installed Node.js
|
||||
set "NODE_EXE=C:\Program Files\nodejs\node.exe"
|
||||
|
||||
:found
|
||||
echo Using Node.js: %NODE_EXE%
|
||||
exit /b 0
|
||||
EOL
|
||||
|
||||
# Create a modified npx.cmd that checks for system Node.js first
|
||||
echo "Creating npx.cmd..."
|
||||
cat > "$WIN_BIN_DIR/npx.cmd" << 'EOL'
|
||||
@ECHO OFF
|
||||
SETLOCAL EnableDelayedExpansion
|
||||
|
||||
SET "SCRIPT_DIR=%~dp0"
|
||||
|
||||
REM Try to find Node.js in standard locations first
|
||||
if exist "C:\Program Files\nodejs\npx.cmd" (
|
||||
"C:\Program Files\nodejs\npx.cmd" %*
|
||||
exit /b %errorlevel%
|
||||
)
|
||||
|
||||
if exist "C:\Program Files (x86)\nodejs\npx.cmd" (
|
||||
"C:\Program Files (x86)\nodejs\npx.cmd" %*
|
||||
exit /b %errorlevel%
|
||||
)
|
||||
|
||||
REM If Node.js not found, run installer
|
||||
call "%SCRIPT_DIR%install-node.cmd" "https://nodejs.org/dist/v23.10.0/node-v23.10.0-x64.msi"
|
||||
if errorlevel 1 (
|
||||
echo Failed to install Node.js
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM Try using the newly installed Node.js
|
||||
if exist "C:\Program Files\nodejs\npx.cmd" (
|
||||
"C:\Program Files\nodejs\npx.cmd" %*
|
||||
exit /b %errorlevel%
|
||||
)
|
||||
|
||||
echo Failed to find npx after Node.js installation
|
||||
exit /b 1
|
||||
EOL
|
||||
|
||||
echo "Windows npm bundle prepared successfully"
|
||||
Reference in New Issue
Block a user