F: Ist es möglich, den Kontext zu ändern, in dem npm Skripte ausführt?
Was ich möchte, ist Folgendes:
"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"
},
Offensichtlich cd deps/2.7/cpython/ && ./configure
funktionieren würde auf UNIX-ähnlichen Systemen , aber nicht an den Fenstern.
Warum: Die Wurzel des Problems ist, dass der configure
Befehl des Python-Repos Dateien in das Verzeichnis ausgibt, in dem es aufgerufen wird. Die Dateien sind jedoch für den Build relevant make
und make install
suchen nach den Dateien im Verzeichnis des Repos.
In diesem Fall kann ich das nicht ändern, Makefile
da der Erstellungsprozess von Python verständlicherweise komplex ist.
Alternative: Die Alternative besteht wahrscheinlich darin, einige zu schreiben install.js
und die betriebssystemunabhängige API des Knotens zu verwenden, und einige child_process.exec()
, was ich wahrscheinlich tun werde. Es wäre jedoch sehr schön , npm nicht zu verlassen .