P: Czy można zmienić kontekst, w którym npm uruchamia skrypty?
Chcę tego:
"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"
},
Oczywiście cd deps/2.7/cpython/ && ./configure
działałby na systemach typu UNIX, ale nie w systemie Windows.
Dlaczego: Problem polega na tym, że configure
polecenie repozytorium języka Python umieszcza pliki w katalogu, w którym jest wywoływane. Pliki są jednak odpowiednie dla kompilacji make
i make install
szukają plików w katalogu repozytorium.
W tym przypadku nie mogę zmienić, Makefile
ponieważ proces budowania Pythona jest zrozumiałe.
Alternatywa: Alternatywą jest prawdopodobnie napisanie części install.js
i użycie niezależnego API od systemu operacyjnego węzła i innych child_process.exec()
, co prawdopodobnie zrobię. Jednak nie opuszczanie npm byłoby naprawdę miłe.