P: ¿Es posible cambiar el contexto en el que npm ejecuta scripts?
Lo que quiero es lo siguiente:
"scripts": {
"test": "gulp mocha",
"pre-install": "./deps/2.7/cpython/configure --prefix=$(pwd)/build --exec-prefix=$(pwd)/build && make -C deps/2.7/cpython && make -C deps/2.7/cpython install",
"install": "node-gyp rebuild"
},
Obviamente cd deps/2.7/cpython/ && ./configurefuncionaría en sistemas tipo UNIX pero no en Windows.
Por qué: La raíz del problema es que el configurecomando del repositorio de Python genera archivos en el directorio donde se llama. Sin embargo, los archivos son relevantes para la construcción makey los make installbuscan en el directorio del repositorio.
En este caso, no puedo cambiar el Makefileya que el proceso de compilación de Python es comprensiblemente complejo.
Alternativa: La alternativa es probablemente escribir algunos install.jsy usar la API independiente del sistema operativo del nodo y algunos child_process.exec(), lo que probablemente haré. Sin embargo, no dejar npm sería realmente bueno.