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を離れないのは本当にいいことです。