З: Чи можна змінити контекст, в якому npm запускає сценарії?
Я хочу наступне:
"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"
},
Очевидно, що це cd deps/2.7/cpython/ && ./configureбуде працювати на UNIX-подібних системах, але не на вікнах.
Чому: Корінь проблеми полягає в тому, що configureкоманда репозиторію python виводить файли в каталог, де він викликається. Файли, однак, є відповідними для побудови makeта make installшукають файли в каталозі репозиторію.
У цьому випадку я не можу змінити, Makefileоскільки процес збірки Python, зрозуміло, складний.
Альтернатива: Альтернатива, ймовірно, це написання деяких install.jsта використання незалежного від ОС API вузла та деяких child_process.exec(), що я, мабуть, і зроблю. Однак не залишати npm було б дуже приємно.