В: Можно ли изменить контекст, в котором 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-подобных системах, но не в Windows.
Почему: Корень проблемы в том, что configureкоманда репозитория python выводит файлы в каталог, в котором она вызывается. Однако файлы соответствуют сборке makeи make installищут файлы в каталоге репо.
В этом случае я не могу изменить, Makefileпоскольку процесс сборки Python по понятным причинам сложен.
Альтернатива: альтернативой, вероятно, будет написать некоторые install.jsи использовать независимый от ОС API узла, а некоторые child_process.exec(), что я, вероятно, сделаю. Однако было бы неплохо не покидать npm .