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/ && ./configure
funcionaría en sistemas tipo UNIX pero no en Windows.
Por qué: La raíz del problema es que el configure
comando del repositorio de Python genera archivos en el directorio donde se llama. Sin embargo, los archivos son relevantes para la construcción make
y los make install
buscan en el directorio del repositorio.
En este caso, no puedo cambiar el Makefile
ya que el proceso de compilación de Python es comprensiblemente complejo.
Alternativa: La alternativa es probablemente escribir algunos install.js
y 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.