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ライクなシステムでは動作しますが、Windowsでは動作しません。
理由:問題の根本は、configure
Pythonリポジトリのコマンドが呼び出されたディレクトリにファイルを出力することです。ただし、ファイルはビルドに関連してmake
おりmake install
、リポジトリのディレクトリでファイルを検索します。
この場合Makefile
、Pythonのビルドプロセスは当然複雑なので、変更することはできません。
代替案:代替案は、おそらくいくつかを記述しinstall.js
、ノードのOSに依存しないAPIといくつかを使用するchild_process.exec()
ことです。これは、おそらく私が行うつもりです。ただし、npmを離れないのは本当にいいことです。