Add Alpine Linux support via stub onnxruntime-node module
The @xenova/transformers package unconditionally imports both onnxruntime-node and onnxruntime-web at module load time. This causes immediate failure on Alpine Linux (musl libc) because onnxruntime-node requires glibc. Solution: Created alpine:setup script that replaces onnxruntime-node with a stub module after npm install. The transformers library will automatically fall back to onnxruntime-web (WASM backend). Usage on Alpine: npm install npm run alpine:setup npm run build npm run index:all 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
dfccbf110a
commit
28f5d83d67
12
README.md
12
README.md
@ -44,6 +44,18 @@ npm install
|
|||||||
npm run build
|
npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Alpine Linux Setup
|
||||||
|
|
||||||
|
If you're running on Alpine Linux (musl libc), you need an additional setup step after installing dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
npm run alpine:setup
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
This removes the incompatible `onnxruntime-node` native module and configures the system to use the WASM backend instead. The WASM backend is slightly slower but works on all platforms.
|
||||||
|
|
||||||
## Initial Setup
|
## Initial Setup
|
||||||
|
|
||||||
Before using the MCP server, you need to index the Babylon.js repositories. This is a one-time setup process.
|
Before using the MCP server, you need to index the Babylon.js repositories. This is a one-time setup process.
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
"test:ui": "vitest --ui",
|
"test:ui": "vitest --ui",
|
||||||
"test:run": "vitest run",
|
"test:run": "vitest run",
|
||||||
"test:coverage": "vitest run --coverage",
|
"test:coverage": "vitest run --coverage",
|
||||||
|
"alpine:setup": "sh scripts/alpine-setup.sh",
|
||||||
"index:docs": "tsx scripts/index-docs.ts",
|
"index:docs": "tsx scripts/index-docs.ts",
|
||||||
"index:api": "tsx scripts/index-api.ts",
|
"index:api": "tsx scripts/index-api.ts",
|
||||||
"index:source": "tsx scripts/index-source.ts",
|
"index:source": "tsx scripts/index-source.ts",
|
||||||
|
|||||||
28
scripts/alpine-setup.sh
Executable file
28
scripts/alpine-setup.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Alpine Linux setup script
|
||||||
|
# Removes onnxruntime-node to prevent glibc dependency errors
|
||||||
|
# The transformers library will fall back to onnxruntime-web (WASM)
|
||||||
|
|
||||||
|
echo "Removing onnxruntime-node for Alpine Linux compatibility..."
|
||||||
|
|
||||||
|
# Remove the onnxruntime-node directory
|
||||||
|
rm -rf node_modules/onnxruntime-node
|
||||||
|
|
||||||
|
# Create a stub module so imports don't fail
|
||||||
|
mkdir -p node_modules/onnxruntime-node
|
||||||
|
cat > node_modules/onnxruntime-node/package.json << 'EOF'
|
||||||
|
{
|
||||||
|
"name": "onnxruntime-node",
|
||||||
|
"version": "0.0.0-stub",
|
||||||
|
"main": "index.js",
|
||||||
|
"type": "module"
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > node_modules/onnxruntime-node/index.js << 'EOF'
|
||||||
|
// Stub module for Alpine Linux
|
||||||
|
// @xenova/transformers will use onnxruntime-web instead
|
||||||
|
export default {};
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "✓ Alpine Linux setup complete - WASM backend will be used"
|
||||||
Loading…
Reference in New Issue
Block a user