Hỏi: Có thể thay đổi ngữ cảnh mà npm chạy script không?
Những gì tôi muốn là như sau:
"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"
},
Rõ ràng là cd deps/2.7/cpython/ && ./configure
sẽ hoạt động trên các hệ thống giống UNIX nhưng không hoạt động trên windows.
Lý do: Gốc của vấn đề là configure
lệnh của python repo xuất các tệp vào thư mục nơi nó được gọi. Tuy nhiên, các tệp được xây dựng có liên quan make
và make install
tìm kiếm các tệp trong thư mục của repo.
Trong trường hợp này, tôi không thể thay đổi Makefile
vì quá trình xây dựng Python rất phức tạp.
Thay thế: Giải pháp thay thế có thể là viết một số install.js
và sử dụng API độc lập với hệ điều hành của nút và một số child_process.exec()
, điều mà tôi có thể sẽ làm. Tuy nhiên, không rời khỏi npm sẽ thực sự tốt đẹp.