Q: Можно ли изменить контекст, в котором 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
и использовать node независимый от ОС API и некоторые child_process.exec()
, которые я, вероятно, собираюсь сделать. Однако, не оставляя npm, было бы очень приятно.