З: Чи можна змінити контекст, в якому 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 було б дуже приємно.