Zmień katalog roboczy dla skryptów npm
Pytanie:
Czy można zmienić kontekst, w którym npm uruchamia skrypty?
Chcę tego:
<pre class="lang-js prettyprint-override">
"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/& amp; & amp; ./configurebędzie działać w systemach typu UNIX, ale nie w systemie Windows.
Dlaczego:
głównym problemem jest to, że polecenie
configurerepo python wyświetla pliki do katalogu, w którym jest wywoływane. Jednak pliki są związane z kompilacją dla
makei
make install, które szukają plików w katalogu repo.
W tym przypadku nie mogę zmienić
Makefile, ponieważ proces budowania Pythona jest zrozumiałe.
Alternatywny:
alternatywą jest prawdopodobnie napisanie jakiegoś
install.jsi użycie niezależnego od systemu operacyjnego API węzła i trochę
child_process.exec (), co prawdopodobnie zrobię. Jednak nie wychodź
npm
byłoby bardzo miło.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Zmiana na użycie funkcji spawn została wprowadzona w PR
https://github.com/npm/npm/pull/10958
https://github.com/npm/npm/pull/10958
ale został odrzucony z powodu powyższego rozwiązania.
Anonimowy użytkownik
Potwierdzenie od:
npm prawdopodobnie używa
co pozwoli Ci ustawić takie opcje jak:
ale to nie jest objawienie.
Rozwiązałem to za pomocą dość dużego , który robi mniej więcej to samo i jest wywoływany z jak powyżej. Jednak interfejs API z nie jest łatwy w obsłudze, ponieważ generuje wiele trudnych do debugowania błędów. Zajęło mi to chwilę, ale teraz jestem szczęśliwy.